|
@@ -3864,23 +3864,25 @@ static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
|
|
&conn->init_addr,
|
|
|
&conn->init_addr_type);
|
|
|
}
|
|
|
- } else {
|
|
|
- /* Set the responder (our side) address type based on
|
|
|
- * the advertising address type.
|
|
|
- */
|
|
|
- conn->resp_addr_type = hdev->adv_addr_type;
|
|
|
- if (hdev->adv_addr_type == ADDR_LE_DEV_RANDOM)
|
|
|
- bacpy(&conn->resp_addr, &hdev->random_addr);
|
|
|
- else
|
|
|
- bacpy(&conn->resp_addr, &hdev->bdaddr);
|
|
|
-
|
|
|
- conn->init_addr_type = ev->bdaddr_type;
|
|
|
- bacpy(&conn->init_addr, &ev->bdaddr);
|
|
|
}
|
|
|
} else {
|
|
|
cancel_delayed_work(&conn->le_conn_timeout);
|
|
|
}
|
|
|
|
|
|
+ if (!conn->out) {
|
|
|
+ /* Set the responder (our side) address type based on
|
|
|
+ * the advertising address type.
|
|
|
+ */
|
|
|
+ conn->resp_addr_type = hdev->adv_addr_type;
|
|
|
+ if (hdev->adv_addr_type == ADDR_LE_DEV_RANDOM)
|
|
|
+ bacpy(&conn->resp_addr, &hdev->random_addr);
|
|
|
+ else
|
|
|
+ bacpy(&conn->resp_addr, &hdev->bdaddr);
|
|
|
+
|
|
|
+ conn->init_addr_type = ev->bdaddr_type;
|
|
|
+ bacpy(&conn->init_addr, &ev->bdaddr);
|
|
|
+ }
|
|
|
+
|
|
|
/* Lookup the identity address from the stored connection
|
|
|
* address and address type.
|
|
|
*
|