Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a96acaaf authored by Priti Aghera's avatar Priti Aghera Committed by Android Git Automerger
Browse files

am 50535a3d: Fixed SMP failure for Privacy enabled Multi-Adv

* commit '50535a3d':
  Fixed SMP failure for Privacy enabled Multi-Adv
parents d62000f4 50535a3d
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -294,13 +294,14 @@ void btm_acl_created (BD_ADDR bda, DEV_CLASS dc, BD_NAME bdn,
            p->transport = transport;
            if (transport == BT_TRANSPORT_LE)
            {
                /*allow central device to use random address for now by skipping the role check */
                if (btm_cb.ble_ctr_cb.privacy /* && p->link_role == HCI_ROLE_SLAVE */)
#if BLE_PRIVACY_SPT == TRUE
                if (btm_cb.ble_ctr_cb.privacy)
                {
                    p->conn_addr_type = btm_cb.ble_ctr_cb.addr_mgnt_cb.own_addr_type;
                    memcpy(p->conn_addr, btm_cb.ble_ctr_cb.addr_mgnt_cb.private_addr, BD_ADDR_LEN);
                }
                else
#endif
                {
                    p->conn_addr_type = BLE_ADDR_PUBLIC;
                    BTM_GetLocalDeviceAddr(p->conn_addr);
+11 −1
Original line number Diff line number Diff line
@@ -733,7 +733,7 @@ tBTM_STATUS BTM_BleDisableAdvInstance (UINT8 inst_id)
void btm_ble_multi_adv_vse_cback(UINT8 len, UINT8 *p)
{
    UINT8   sub_event;
    UINT8   adv_inst, reason, conn_handle;
    UINT8   adv_inst, reason, conn_handle, idx;

    /* Check if this is a BLE RSSI vendor specific event */
    STREAM_TO_UINT8(sub_event, p);
@@ -746,6 +746,16 @@ void btm_ble_multi_adv_vse_cback(UINT8 len, UINT8 *p)
        STREAM_TO_UINT8(reason, p);
        STREAM_TO_UINT16(conn_handle, p);

        if ((idx = btm_handle_to_acl_index(conn_handle)) != MAX_L2CAP_LINKS)
        {
            if (btm_cb.ble_ctr_cb.privacy &&
                adv_inst <= BTM_BLE_MULTI_ADV_MAX && adv_inst !=  BTM_BLE_MULTI_ADV_DEFAULT_STD)
            {
                memcpy(btm_cb.acl_db[idx].conn_addr, btm_multi_adv_cb.p_adv_inst[adv_inst - 1].rpa,
                                BD_ADDR_LEN);
            }
        }

        if (adv_inst < BTM_BleMaxMultiAdvInstanceCount() &&
            adv_inst !=  BTM_BLE_MULTI_ADV_DEFAULT_STD)
        {