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

Commit 85e857ee authored by Martin Brabham's avatar Martin Brabham Committed by Automerger Merge Worker
Browse files

Merge "Also remove entry during delete in addition to clear" into sc-dev am: 77f7385b

Original change: https://googleplex-android-review.googlesource.com/c/platform/system/bt/+/15413946

Change-Id: I3580febe46baba8b868c44a5b9a2b5ebc33eb433
parents 4f747815 77f7385b
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -854,6 +854,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);