diff options
author | Ganesh Ganapathi Batta <ganeshg@broadcom.com> | 2012-04-27 11:41:19 -0700 |
---|---|---|
committer | Matthew Xie <mattx@google.com> | 2012-07-14 11:19:19 -0700 |
commit | 7e1faaf64d9d362da70a3f4b4c1fca517fad7862 (patch) | |
tree | 51d572d4e5b9cf9444ced7e73758753c5e5e3d63 | |
parent | 7f58927df0ee3f2f38367efe62c8901a760eeaa4 (diff) | |
download | external_bluetooth_bluedroid-7e1faaf64d9d362da70a3f4b4c1fca517fad7862.zip external_bluetooth_bluedroid-7e1faaf64d9d362da70a3f4b4c1fca517fad7862.tar.gz external_bluetooth_bluedroid-7e1faaf64d9d362da70a3f4b4c1fca517fad7862.tar.bz2 |
Assign proper fail reasons to status parameter while sending Auth Complete event when Authentication fails
Change-Id: I0102762b8bfa06b8d99227c431be881269c14961
-rw-r--r-- | btif/src/btif_dm.c | 19 | ||||
-rwxr-xr-x[-rw-r--r--] | stack/btm/btm_sec.c | 2 |
2 files changed, 19 insertions, 2 deletions
diff --git a/btif/src/btif_dm.c b/btif/src/btif_dm.c index 55300d5..df4998d 100644 --- a/btif/src/btif_dm.c +++ b/btif/src/btif_dm.c @@ -641,7 +641,6 @@ static void btif_dm_auth_cmpl_evt (tBTA_DM_AUTH_CMPL *p_auth_cmpl) __FUNCTION__, p_auth_cmpl->key_type, pairing_cb.is_temp); } } - if (p_auth_cmpl->success) { status = BT_STATUS_SUCCESS; @@ -650,7 +649,25 @@ static void btif_dm_auth_cmpl_evt (tBTA_DM_AUTH_CMPL *p_auth_cmpl) /* Trigger SDP on the device */ btif_dm_get_remote_services(&bd_addr); } + else + { + /*Map the HCI fail reason to bt status */ + switch(p_auth_cmpl->fail_reason) + { + case HCI_ERR_PAGE_TIMEOUT: + case HCI_ERR_CONNECTION_TOUT: + status = BT_STATUS_RMT_DEV_DOWN; + break; + case HCI_ERR_AUTH_FAILURE: + status = BT_STATUS_AUTH_FAILURE; + break; + + default: + status = BT_STATUS_FAIL; + } + + } bond_state_changed(status, &bd_addr, state); } diff --git a/stack/btm/btm_sec.c b/stack/btm/btm_sec.c index bdf7f95..a845acc 100644..100755 --- a/stack/btm/btm_sec.c +++ b/stack/btm/btm_sec.c @@ -4358,7 +4358,7 @@ void btm_sec_disconnected (UINT16 handle, UINT8 reason) result = HCI_ERR_HOST_REJECT_SECURITY; } (*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class, - p_dev_rec->sec_bd_name, reason); + p_dev_rec->sec_bd_name, result); } } |