diff options
author | Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com> | 2014-01-10 16:11:48 +0200 |
---|---|---|
committer | Szymon Janc <szymon.janc@tieto.com> | 2014-01-10 16:09:55 +0100 |
commit | 7f445ac7d5e5241a43c114ebf5831a8bd40baa7c (patch) | |
tree | 4075f418fe49cb6d7637f1dfbdc95bc817863f17 /android/pan.c | |
parent | 423f6371791aafaa052aba3a78047fc241fb9dfb (diff) | |
download | bluez-7f445ac7d5e5241a43c114ebf5831a8bd40baa7c.tar.gz |
android/pan: Implement PAN enable HAL api at daemon side
Diffstat (limited to 'android/pan.c')
-rw-r--r-- | android/pan.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/android/pan.c b/android/pan.c index 21a46b467..9f99ed96b 100644 --- a/android/pan.c +++ b/android/pan.c @@ -576,18 +576,40 @@ static void bt_pan_enable(const void *buf, uint16_t len) { const struct hal_cmd_pan_enable *cmd = buf; uint8_t status; + int err; + + DBG(""); + + if (local_role == cmd->local_role) { + status = HAL_STATUS_SUCCESS; + goto reply; + } + + /* destroy existing server */ + destroy_nap_device(); switch (cmd->local_role) { - case HAL_PAN_ROLE_PANU: case HAL_PAN_ROLE_NAP: - DBG("Not Implemented"); - status = HAL_STATUS_FAILED; break; + case HAL_PAN_ROLE_NONE: + status = HAL_STATUS_SUCCESS; + goto reply; default: status = HAL_STATUS_UNSUPPORTED; - break; + goto reply; } + local_role = cmd->local_role; + err = register_nap_server(); + if (err < 0) { + status = HAL_STATUS_FAILED; + destroy_nap_device(); + goto reply; + } + + status = HAL_STATUS_SUCCESS; + +reply: ipc_send_rsp(HAL_SERVICE_ID_PAN, HAL_OP_PAN_ENABLE, status); } |