mirror of https://github.com/ARMmbed/mbed-os.git
BLE: Fix insertion to host resolving list.
parent
3a632a3685
commit
02667389db
|
@ -164,16 +164,34 @@ ble_error_t PrivateAddressController::add_device_to_resolving_list(
|
||||||
peer_irk
|
peer_irk
|
||||||
);
|
);
|
||||||
} else {
|
} 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) {
|
for (auto &entry : _resolving_list) {
|
||||||
if (entry.populated == false) {
|
if (entry.populated == false) {
|
||||||
entry.peer_address_type = peer_address_type;
|
entry.peer_address_type = peer_address_type;
|
||||||
entry.peer_address = peer_identity_address;
|
entry.peer_address = peer_identity_address;
|
||||||
entry.peer_irk = peer_irk;
|
entry.peer_irk = peer_irk;
|
||||||
entry.populated = true;
|
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 unresolved entries from the resolved list
|
||||||
remove_resolution_entry_from_cache(
|
remove_resolution_entry_from_cache(
|
||||||
[&](resolution_entry_t &entry) {
|
[&](resolution_entry_t &entry) {
|
||||||
|
|
Loading…
Reference in New Issue