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

Commit 93449e37 authored by Martin Brabham's avatar Martin Brabham
Browse files

Allow data to be created regardless of a p_dev_rec existing

This will allow a new generate local oob data after a recent pairing has
happend.

Bug: 220390729
Test: gd/cert/run --clean --device --sl4a OobPairingSl4aTest
Tag: #stability
Change-Id: I61f69d53270716c23915f3195cf3848fa67930b8
parent 5cd52995
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -1743,11 +1743,16 @@ void btm_ble_connected_from_address_with_type(
 *****************************************************************************/
tBTM_STATUS btm_proc_smp_cback(tSMP_EVT event, const RawAddress& bd_addr,
                               const tSMP_EVT_DATA* p_data) {
  BTM_TRACE_DEBUG("btm_proc_smp_cback event = %d", event);

  if (event == SMP_SC_LOC_OOB_DATA_UP_EVT) {
    btm_sec_cr_loc_oob_data_cback_event(RawAddress{}, p_data->loc_oob_data);
    return BTM_SUCCESS;
  }

  tBTM_SEC_DEV_REC* p_dev_rec = btm_find_dev(bd_addr);
  tBTM_STATUS res = BTM_SUCCESS;

  BTM_TRACE_DEBUG("btm_proc_smp_cback event = %d", event);

  if (p_dev_rec != NULL) {
    switch (event) {
      case SMP_IO_CAP_REQ_EVT:
@@ -1860,13 +1865,7 @@ tBTM_STATUS btm_proc_smp_cback(tSMP_EVT event, const RawAddress& bd_addr,
        break;
    }
  } else {
    // If we are being paired with via OOB we haven't created a dev rec for
    // the device yet
    if (event == SMP_SC_LOC_OOB_DATA_UP_EVT) {
      btm_sec_cr_loc_oob_data_cback_event(bd_addr, p_data->loc_oob_data);
    } else {
      LOG_WARN("Unexpected event '%d' without p_dev_rec", event);
    }
    LOG_WARN("Unexpected event '%d' for unknown device.", event);
  }

  return BTM_SUCCESS;