Diff between 895e0a16f1ee08cfc71cb7ceedc48d2dc50dc0b1 and 45749f6aad2600e32f7f149aa9b5ffa73604535e

Changed Files

File Additions Deletions Status
emulator/btdev.c +6 -1 modified

Full Patch

diff --git a/emulator/btdev.c b/emulator/btdev.c
index 8ba6e6b..641edea 100644
--- a/emulator/btdev.c
+++ b/emulator/btdev.c
@@ -1022,7 +1022,11 @@ static void le_conn_complete(struct btdev *btdev,
 		remote->conn = btdev;
 
 		cc->status = status;
-		memcpy(cc->peer_addr, btdev->bdaddr, 6);
+		cc->peer_addr_type = btdev->le_scan_own_addr_type;
+		if (cc->peer_addr_type == 0x01)
+			memcpy(cc->peer_addr, btdev->random_addr, 6);
+		else
+			memcpy(cc->peer_addr, btdev->bdaddr, 6);
 
 		cc->role = 0x01;
 		cc->handle = cpu_to_le16(42);
@@ -1033,6 +1037,7 @@ static void le_conn_complete(struct btdev *btdev,
 	}
 
 	cc->status = status;
+	cc->peer_addr_type = bdaddr_type;
 	memcpy(cc->peer_addr, bdaddr, 6);
 	cc->role = 0x00;