nimble/ll: Fix handling directed advertising with privacy

Fix incorrect address comparision. advsm->peer_addr is the address
provided via HCI, in the advertising packets we use advsm->initiator_addr
which is either advsm->peer_addr or RPA.

Without this patch it is not possible to connect to Nimble when it
is using RPA in the directed advertising
This commit is contained in:
Łukasz Rymanowski
2019-01-31 12:51:03 +01:00
parent 24ff866c9e
commit fe01942e9e
+1 -1
View File
@@ -2878,7 +2878,7 @@ ble_ll_adv_rx_req(uint8_t pdu_type, struct os_mbuf *rxpdu)
* are doing directed advertising
*/
if (advsm->props & BLE_HCI_LE_SET_EXT_ADV_PROP_DIRECTED) {
if (memcmp(advsm->peer_addr, peer, BLE_DEV_ADDR_LEN)) {
if (memcmp(advsm->initiator_addr, peer, BLE_DEV_ADDR_LEN)) {
return -1;
}
}