You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by GitBox <gi...@apache.org> on 2018/05/04 09:58:57 UTC
[GitHub] sjanc closed pull request #77: nimble/ll: Fix peer address in LE
Enhanced Connection Complete Event
sjanc closed pull request #77: nimble/ll: Fix peer address in LE Enhanced Connection Complete Event
URL: https://github.com/apache/mynewt-nimble/pull/77
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/nimble/controller/src/ble_ll_conn.c b/nimble/controller/src/ble_ll_conn.c
index 1fb5a010..75fd8e4f 100644
--- a/nimble/controller/src/ble_ll_conn.c
+++ b/nimble/controller/src/ble_ll_conn.c
@@ -1737,6 +1737,17 @@ ble_ll_conn_master_init(struct ble_ll_conn_sm *connsm,
if (hcc->filter_policy == 0) {
memcpy(&connsm->peer_addr, &hcc->peer_addr, BLE_DEV_ADDR_LEN);
connsm->peer_addr_type = hcc->peer_addr_type;
+
+ /* If device was added to resolve list peer type has different meaning
+ * and we need to adjust here. If device is on resolve list mark type as
+ * 'identity' as this means also RPA is allowed for connection.
+ */
+ if ((connsm->peer_addr_type < BLE_HCI_CONN_PEER_ADDR_PUBLIC_IDENT) &&
+ ble_ll_resolv_list_find(connsm->peer_addr,
+ connsm->peer_addr_type)) {
+ connsm->peer_addr_type += 2;
+ }
+
}
/* XXX: for now, just make connection interval equal to max */
@@ -1840,6 +1851,17 @@ ble_ll_conn_ext_master_init(struct ble_ll_conn_sm *connsm,
if (hcc->filter_policy == 0) {
memcpy(&connsm->peer_addr, &hcc->peer_addr, BLE_DEV_ADDR_LEN);
connsm->peer_addr_type = hcc->peer_addr_type;
+
+ /* In LE Extended Create Connection peer type has different meaning
+ * than legacy LE Create Connection and since legacy values are used
+ * internally we need to adjust here. If device is on resolve list
+ * mark type as 'identity' as this means also RPA is allowed for
+ * connection.
+ */
+ if (ble_ll_resolv_list_find(connsm->peer_addr,
+ connsm->peer_addr_type)) {
+ connsm->peer_addr_type += 2;
+ }
}
connsm->initial_params = *hcc;
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services