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

Commit c5a79ea2 authored by Martin Brabham's avatar Martin Brabham
Browse files

Also remove entry during delete in addition to clear

Bug: 194432570
Test: Manual test app; nRF connect
Tag: #feature
Change-Id: I17a1a8b1ba2b305527ae74bb8ad5f6e1258e870e
parent 12e702e2
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -855,6 +855,25 @@ void BTM_BleAdvFilterParamSetup(
        FROM_HERE, HCI_BLE_ADV_FILTER, param,
        (uint8_t)(BTM_BLE_ADV_FILT_META_HDR_LENGTH),
        base::Bind(&btm_flt_update_cb, BTM_BLE_META_PF_FEAT_SEL, cb));

    auto entry = remove_me_later_map.find(filt_index);
    if (entry != remove_me_later_map.end()) {
      LOG_WARN("Replacing existing filter index entry with new address");
      // If device is not bonded, then try removing the device
      // If the device doesn't get removed then it is currently connected
      // (may be pairing?) If we do delete the device we want to erase the
      // filter index so we can replace it If the device is bonded, we
      // want to erase the filter index so we don't delete it in the later
      // BTM_LE_PF_clear call.
      if (!btm_sec_is_a_bonded_dev(entry->second)) {
        if (!BTM_SecDeleteDevice(entry->second)) {
          LOG_WARN("Unable to remove device, still connected.");
          return;
        }
      }
      remove_me_later_map.erase(filt_index);
    }

  } else if (BTM_BLE_SCAN_COND_CLEAR == action) {
    /* Deallocate all filters here */
    btm_ble_dealloc_addr_filter_counter(NULL, BTM_BLE_PF_TYPE_ALL);