diff --git a/android/hal-pan.c b/android/hal-pan.c
index ec52672..8c0f8d8 100644
--- a/android/hal-pan.c
+++ b/android/hal-pan.c
if (!interface_ready())
return BT_STATUS_NOT_READY;
- switch (local_role) {
- case BTPAN_ROLE_PANNAP:
- if (remote_role != BTPAN_ROLE_PANU)
- return BT_STATUS_UNSUPPORTED;
- break;
- case BTPAN_ROLE_PANU:
- if (remote_role != BTPAN_ROLE_PANNAP &&
- remote_role != BTPAN_ROLE_PANU)
- return BT_STATUS_UNSUPPORTED;
- break;
- default:
- return BT_STATUS_UNSUPPORTED;
- }
-
memcpy(cmd.bdaddr, bd_addr, sizeof(cmd.bdaddr));
cmd.local_role = local_role;
cmd.remote_role = remote_role;
diff --git a/android/pan.c b/android/pan.c
index d2be50a..6b098b2 100644
--- a/android/pan.c
+++ b/android/pan.c
DBG("");
+ switch (cmd->local_role) {
+ case HAL_PAN_ROLE_NAP:
+ if (cmd->remote_role != HAL_PAN_ROLE_PANU) {
+ status = HAL_STATUS_UNSUPPORTED;
+ goto failed;
+ }
+ break;
+ case HAL_PAN_ROLE_PANU:
+ if (cmd->remote_role != HAL_PAN_ROLE_NAP &&
+ cmd->remote_role != HAL_PAN_ROLE_PANU) {
+ status = HAL_STATUS_UNSUPPORTED;
+ goto failed;
+ }
+ break;
+ default:
+ status = HAL_STATUS_UNSUPPORTED;
+ goto failed;
+ }
+
android2bdaddr(&cmd->bdaddr, &dst);
l = g_slist_find_custom(devices, &dst, device_cmp);