From 4f77842f5e734289a374be40b0be00c1c473ece8 Mon Sep 17 00:00:00 2001 From: Bailey Forrest Date: Tue, 25 Jul 2017 19:50:39 -0700 Subject: [PATCH] Call bta_dm_sp_cback if BTM_LOCAL_IO_CAPS == BTM_IO_CAP_NONE Without bta_dm_sp_cback, bluetooth.h platform API does not function correctly when BTM_IO_CAP_NONE is set. - bond_state_changed_callback is never called - get_remote_device_properties returns nothing This reverts eb1ad1d47b84767d9af180243cb14ac409331a0d Bug: 63603696 Test: Test on device. bond_state_changed_callback called Change-Id: If8d537355eb12c84ecbf5eb2d07fb27b178d9c66 --- bta/dm/bta_dm_act.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/bta/dm/bta_dm_act.cc b/bta/dm/bta_dm_act.cc index 03c4530be..ddcc61146 100644 --- a/bta/dm/bta_dm_act.cc +++ b/bta/dm/bta_dm_act.cc @@ -82,9 +82,7 @@ static void bta_dm_policy_cback(tBTA_SYS_CONN_STATUS status, uint8_t id, uint8_t app_id, const RawAddress* peer_addr); /* Extended Inquiry Response */ -#if (BTM_LOCAL_IO_CAPS != BTM_IO_CAP_NONE) static uint8_t bta_dm_sp_cback(tBTM_SP_EVT event, tBTM_SP_EVT_DATA* p_data); -#endif static void bta_dm_set_eir(char* local_name); @@ -236,11 +234,7 @@ const tBTM_APPL_INFO bta_security = {&bta_dm_authorize_cback, &bta_dm_new_link_key_cback, &bta_dm_authentication_complete_cback, &bta_dm_bond_cancel_complete_cback, -#if (BTM_LOCAL_IO_CAPS != BTM_IO_CAP_NONE) &bta_dm_sp_cback, -#else - NULL, -#endif &bta_dm_ble_smp_cback, &bta_dm_ble_id_key_cback}; @@ -2600,7 +2594,6 @@ static uint8_t bta_dm_authentication_complete_cback( return BTM_SUCCESS; } -#if (BTM_LOCAL_IO_CAPS != BTM_IO_CAP_NONE) /******************************************************************************* * * Function bta_dm_sp_cback @@ -2621,16 +2614,20 @@ static uint8_t bta_dm_sp_cback(tBTM_SP_EVT event, tBTM_SP_EVT_DATA* p_data) { /* TODO_SP */ switch (event) { case BTM_SP_IO_REQ_EVT: +#if (BTM_LOCAL_IO_CAPS != BTM_IO_CAP_NONE) /* translate auth_req */ bta_dm_co_io_req(p_data->io_req.bd_addr, &p_data->io_req.io_cap, &p_data->io_req.oob_data, &p_data->io_req.auth_req, p_data->io_req.is_orig); +#endif APPL_TRACE_EVENT("io mitm: %d oob_data:%d", p_data->io_req.auth_req, p_data->io_req.oob_data); break; case BTM_SP_IO_RSP_EVT: +#if (BTM_LOCAL_IO_CAPS != BTM_IO_CAP_NONE) bta_dm_co_io_rsp(p_data->io_rsp.bd_addr, p_data->io_rsp.io_cap, p_data->io_rsp.oob_data, p_data->io_rsp.auth_req); +#endif break; case BTM_SP_CFM_REQ_EVT: @@ -2643,10 +2640,12 @@ static uint8_t bta_dm_sp_cback(tBTM_SP_EVT event, tBTM_SP_EVT_DATA* p_data) { sec_event.cfm_req.rmt_io_caps = p_data->cfm_req.rmt_io_caps; /* continue to next case */ +#if (BTM_LOCAL_IO_CAPS != BTM_IO_CAP_NONE) /* Passkey entry mode, mobile device with output capability is very unlikely to receive key request, so skip this event */ /*case BTM_SP_KEY_REQ_EVT: */ case BTM_SP_KEY_NOTIF_EVT: +#endif bta_dm_cb.num_val = sec_event.key_notif.passkey = p_data->key_notif.passkey; @@ -2758,7 +2757,6 @@ static uint8_t bta_dm_sp_cback(tBTM_SP_EVT event, tBTM_SP_EVT_DATA* p_data) { APPL_TRACE_EVENT("dm status: %d", status); return status; } -#endif /******************************************************************************* * -- 2.11.0