From fe01942e9eadd3ce9b034d5ef8f9dfd853b64298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Rymanowski?= Date: Wed, 30 Jan 2019 11:08:57 +0100 Subject: [PATCH] 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 --- nimble/controller/src/ble_ll_adv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nimble/controller/src/ble_ll_adv.c b/nimble/controller/src/ble_ll_adv.c index 980ef142c..df62af6c5 100644 --- a/nimble/controller/src/ble_ll_adv.c +++ b/nimble/controller/src/ble_ll_adv.c @@ -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; } }