BLE: Fix insertion to host resolving list.

pull/13759/head
Vincent Coubard 2020-09-23 11:04:39 +01:00
parent 3a632a3685
commit 02667389db
1 changed files with 19 additions and 1 deletions

View File

@ -164,16 +164,34 @@ ble_error_t PrivateAddressController::add_device_to_resolving_list(
peer_irk
);
} else {
// ensure an entry is not added twice
for (auto &entry : _resolving_list) {
if (entry.populated &&
entry.peer_address_type == peer_address_type &&
entry.peer_address == peer_identity_address &&
entry.peer_irk == peer_irk
) {
return BLE_ERROR_NONE;
}
}
bool entry_added = false;
for (auto &entry : _resolving_list) {
if (entry.populated == false) {
entry.peer_address_type = peer_address_type;
entry.peer_address = peer_identity_address;
entry.peer_irk = peer_irk;
entry.populated = true;
return BLE_ERROR_NONE;
entry_added = true;
break;
}
}
if (!entry_added) {
return BLE_ERROR_NO_MEM;
}
// Remove unresolved entries from the resolved list
remove_resolution_entry_from_cache(
[&](resolution_entry_t &entry) {