mirror of https://gitee.com/openkylin/linux.git
Bluetooth: Update source address and type for incoming LE connections
The incoming LE connections do not have a proper source address and address type set. The connection needs to be set with the same values as used for advertising parameters. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
parent
662e8820f3
commit
880be4e8d0
|
@ -3477,6 +3477,17 @@ static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
|
||||||
|
|
||||||
conn->dst_type = ev->bdaddr_type;
|
conn->dst_type = ev->bdaddr_type;
|
||||||
|
|
||||||
|
/* The advertising parameters for own address type
|
||||||
|
* define which source address and source address
|
||||||
|
* type this connections has.
|
||||||
|
*/
|
||||||
|
if (bacmp(&conn->src, BDADDR_ANY)) {
|
||||||
|
conn->src_type = ADDR_LE_DEV_PUBLIC;
|
||||||
|
} else {
|
||||||
|
bacpy(&conn->src, &hdev->static_addr);
|
||||||
|
conn->src_type = ADDR_LE_DEV_RANDOM;
|
||||||
|
}
|
||||||
|
|
||||||
if (ev->role == LE_CONN_ROLE_MASTER) {
|
if (ev->role == LE_CONN_ROLE_MASTER) {
|
||||||
conn->out = true;
|
conn->out = true;
|
||||||
conn->link_mode |= HCI_LM_MASTER;
|
conn->link_mode |= HCI_LM_MASTER;
|
||||||
|
|
Loading…
Reference in New Issue