Loading system/stack/btm/btm_dev.cc +19 −6 Original line number Diff line number Diff line Loading @@ -343,7 +343,7 @@ tBTM_SEC_DEV_REC* btm_find_dev_by_handle(uint16_t handle) { return NULL; } static bool is_address_equal(void* data, void* context) { static bool is_not_same_identity_or_pseudo_address(void* data, void* context) { tBTM_SEC_DEV_REC* p_dev_rec = static_cast<tBTM_SEC_DEV_REC*>(data); const RawAddress* bd_addr = ((RawAddress*)context); Loading @@ -355,12 +355,18 @@ static bool is_address_equal(void* data, void* context) { return false; } return true; } static bool is_rpa_unresolvable(void* data, void* context) { tBTM_SEC_DEV_REC* p_dev_rec = static_cast<tBTM_SEC_DEV_REC*>(data); const RawAddress* bd_addr = ((RawAddress*)context); if (btm_ble_addr_resolvable(*bd_addr, p_dev_rec)) { return false; } return true; } /******************************************************************************* * * Function btm_find_dev Loading @@ -376,12 +382,19 @@ tBTM_SEC_DEV_REC* btm_find_dev(const RawAddress& bd_addr) { return nullptr; } list_node_t* n = list_foreach(btm_sec_cb.sec_dev_rec, is_address_equal, (void*)&bd_addr); if (n) { // Find by matching identity address or pseudo address. list_node_t* n = list_foreach(btm_sec_cb.sec_dev_rec, is_not_same_identity_or_pseudo_address, (void*)&bd_addr); // If not found by matching identity address or pseudo address, find by RPA if (n == nullptr) { n = list_foreach(btm_sec_cb.sec_dev_rec, is_rpa_unresolvable, (void*)&bd_addr); } if (n != nullptr) { return static_cast<tBTM_SEC_DEV_REC*>(list_node(n)); } return NULL; return nullptr; } static bool has_lenc_and_address_is_equal(void* data, void* context) { Loading @@ -390,7 +403,7 @@ static bool has_lenc_and_address_is_equal(void* data, void* context) { return true; } return is_address_equal(data, context); return is_not_same_identity_or_pseudo_address(data, context); } /******************************************************************************* Loading Loading
system/stack/btm/btm_dev.cc +19 −6 Original line number Diff line number Diff line Loading @@ -343,7 +343,7 @@ tBTM_SEC_DEV_REC* btm_find_dev_by_handle(uint16_t handle) { return NULL; } static bool is_address_equal(void* data, void* context) { static bool is_not_same_identity_or_pseudo_address(void* data, void* context) { tBTM_SEC_DEV_REC* p_dev_rec = static_cast<tBTM_SEC_DEV_REC*>(data); const RawAddress* bd_addr = ((RawAddress*)context); Loading @@ -355,12 +355,18 @@ static bool is_address_equal(void* data, void* context) { return false; } return true; } static bool is_rpa_unresolvable(void* data, void* context) { tBTM_SEC_DEV_REC* p_dev_rec = static_cast<tBTM_SEC_DEV_REC*>(data); const RawAddress* bd_addr = ((RawAddress*)context); if (btm_ble_addr_resolvable(*bd_addr, p_dev_rec)) { return false; } return true; } /******************************************************************************* * * Function btm_find_dev Loading @@ -376,12 +382,19 @@ tBTM_SEC_DEV_REC* btm_find_dev(const RawAddress& bd_addr) { return nullptr; } list_node_t* n = list_foreach(btm_sec_cb.sec_dev_rec, is_address_equal, (void*)&bd_addr); if (n) { // Find by matching identity address or pseudo address. list_node_t* n = list_foreach(btm_sec_cb.sec_dev_rec, is_not_same_identity_or_pseudo_address, (void*)&bd_addr); // If not found by matching identity address or pseudo address, find by RPA if (n == nullptr) { n = list_foreach(btm_sec_cb.sec_dev_rec, is_rpa_unresolvable, (void*)&bd_addr); } if (n != nullptr) { return static_cast<tBTM_SEC_DEV_REC*>(list_node(n)); } return NULL; return nullptr; } static bool has_lenc_and_address_is_equal(void* data, void* context) { Loading @@ -390,7 +403,7 @@ static bool has_lenc_and_address_is_equal(void* data, void* context) { return true; } return is_address_equal(data, context); return is_not_same_identity_or_pseudo_address(data, context); } /******************************************************************************* Loading