Fixed BLE reconnect failed when using rpa public address

This commit is contained in:
zwj 2021-05-21 14:37:04 +08:00
parent a49f48a72b
commit 8919322c76
2 changed files with 10 additions and 3 deletions

View File

@ -2071,6 +2071,8 @@ static void btu_ble_ext_adv_report_evt(UINT8 *p, UINT16 evt_len)
UINT8 num_reports = {0}; UINT8 num_reports = {0};
//UINT8 legacy_event_type = 0; //UINT8 legacy_event_type = 0;
UINT16 evt_type = 0; UINT16 evt_type = 0;
uint8_t addr_type;
BD_ADDR bda;
if (!p) { if (!p) {
HCI_TRACE_ERROR("%s, Invalid params.", __func__); HCI_TRACE_ERROR("%s, Invalid params.", __func__);
@ -2102,8 +2104,13 @@ static void btu_ble_ext_adv_report_evt(UINT8 *p, UINT16 evt_len)
} }
} }
STREAM_TO_UINT8(ext_adv_report.addr_type, p); STREAM_TO_UINT8(addr_type, p);
STREAM_TO_BDADDR(ext_adv_report.addr, p); STREAM_TO_BDADDR(bda, p);
#if (defined BLE_PRIVACY_SPT && BLE_PRIVACY_SPT == TRUE)
btm_identity_addr_to_random_pseudo(bda, &addr_type, FALSE);
#endif
ext_adv_report.addr_type = addr_type;
memcpy(ext_adv_report.addr, bda, 6);
STREAM_TO_UINT8(ext_adv_report.primary_phy, p); STREAM_TO_UINT8(ext_adv_report.primary_phy, p);
STREAM_TO_UINT8(ext_adv_report.secondry_phy, p); STREAM_TO_UINT8(ext_adv_report.secondry_phy, p);
STREAM_TO_UINT8(ext_adv_report.sid, p); STREAM_TO_UINT8(ext_adv_report.sid, p);

View File

@ -829,7 +829,7 @@ BOOLEAN l2cble_init_direct_conn (tL2C_LCB *p_lcb)
#endif // (!CONTROLLER_RPA_LIST_ENABLE) #endif // (!CONTROLLER_RPA_LIST_ENABLE)
#if (CONTROLLER_RPA_LIST_ENABLE && CONFIG_BT_CTRL_ESP32) #if (CONTROLLER_RPA_LIST_ENABLE)
if (p_dev_rec->ble.in_controller_list & BTM_RESOLVING_LIST_BIT) { if (p_dev_rec->ble.in_controller_list & BTM_RESOLVING_LIST_BIT) {
if (btm_cb.ble_ctr_cb.privacy_mode >= BTM_PRIVACY_1_2) { if (btm_cb.ble_ctr_cb.privacy_mode >= BTM_PRIVACY_1_2) {