Bluetooth: Look up IRKs during LE scanning

Devices using LE Privacy are identified by their Identity Address
whenever we've paired and received their IRK. We should therefore try
to look up matching IRKs for advertising responses.

Change-Id: I304108da699ff2506e6cc50bd6c5c053a0db024b
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
Johan Hedberg 2015-06-01 10:25:05 +07:00 committed by Anas Nashif
commit 5c31ad3ae4

View file

@ -583,11 +583,19 @@ static void le_adv_report(struct bt_buf *buf)
while (num_reports--) {
int8_t rssi = info->data[info->length];
struct bt_keys *keys;
BT_DBG("%s event %u, len %u, rssi %d dBm\n",
bt_addr_le_str(&info->addr),
info->evt_type, info->length, rssi);
keys = bt_keys_find_irk(&info->addr);
if (keys) {
BT_DBG("Identity %s matched RPA %s\n",
bt_addr_le_str(&keys->addr),
bt_addr_le_str(&info->addr));
}
/* Get next report iteration by moving pointer to right offset
* in buf according to spec 4.2, Vol 2, Part E, 7.7.65.2.
*/