diff --git a/android/pan.c b/android/pan.c
index c11ee29..d8572cc 100644
--- a/android/pan.c
+++ b/android/pan.c
pan_device_remove(dev);
}
-static void bt_pan_notify_ctrl_state(struct pan_device *dev, uint8_t state)
+static void bt_pan_notify_ctrl_state(struct pan_device *dev, uint8_t state,
+ uint8_t status)
{
struct hal_ev_pan_ctrl_state ev;
ev.state = state;
ev.local_role = local_role;
- ev.status = HAL_STATUS_SUCCESS;
+ ev.status = status;
memset(ev.name, 0, sizeof(ev.name));
if (local_role == HAL_PAN_ROLE_NAP)
memcpy(ev.name, BNEP_BRIDGE, sizeof(BNEP_BRIDGE));
- else
+ else if (local_role == HAL_PAN_ROLE_PANU)
memcpy(ev.name, dev->iface, sizeof(dev->iface));
ipc_send_notif(hal_ipc, HAL_SERVICE_ID_PAN, HAL_EV_PAN_CTRL_STATE,
DBG("%s connected", dev->iface);
- bt_pan_notify_ctrl_state(dev, HAL_PAN_CTRL_ENABLED);
+ bt_pan_notify_ctrl_state(dev, HAL_PAN_CTRL_ENABLED, HAL_STATUS_SUCCESS);
bt_pan_notify_conn_state(dev, HAL_PAN_STATE_CONNECTED);
}
g_io_channel_unref(dev->io);
dev->io = NULL;
- bt_pan_notify_ctrl_state(dev, HAL_PAN_CTRL_ENABLED);
+ bt_pan_notify_ctrl_state(dev, HAL_PAN_CTRL_ENABLED, HAL_STATUS_SUCCESS);
bt_pan_notify_conn_state(dev, HAL_PAN_STATE_CONNECTED);
return FALSE;
static void bt_pan_enable(const void *buf, uint16_t len)
{
const struct hal_cmd_pan_enable *cmd = buf;
- uint8_t status;
+ uint8_t status, state;
int err;
DBG("");
case HAL_PAN_ROLE_NAP:
break;
case HAL_PAN_ROLE_NONE:
+ local_role = HAL_PAN_ROLE_NONE;
status = HAL_STATUS_SUCCESS;
- goto reply;
+ state = HAL_PAN_CTRL_DISABLED;
+ goto notify;
default:
status = HAL_STATUS_UNSUPPORTED;
goto reply;
}
status = HAL_STATUS_SUCCESS;
+ state = HAL_PAN_CTRL_ENABLED;
+
+notify:
+ bt_pan_notify_ctrl_state(NULL, state, status);
reply:
ipc_send_rsp(hal_ipc, HAL_SERVICE_ID_PAN, HAL_OP_PAN_ENABLE, status);