diff --git a/emulator/bthost.c b/emulator/bthost.c
index 99537ac..a178fb0 100644
--- a/emulator/bthost.c
+++ b/emulator/bthost.c
struct btconn {
uint16_t handle;
+ uint8_t bdaddr[6];
uint8_t addr_type;
uint8_t encr_mode;
uint16_t next_cid;
sizeof(cmd));
}
-static void init_conn(struct bthost *bthost, uint16_t handle, uint8_t addr_type)
+static void init_conn(struct bthost *bthost, uint16_t handle,
+ const uint8_t *bdaddr, uint8_t addr_type)
{
struct btconn *conn;
memset(conn, 0, sizeof(*conn));
conn->handle = handle;
+ memcpy(conn->bdaddr, bdaddr, 6);
conn->addr_type = addr_type;
conn->next_cid = 0x0040;
if (ev->status)
return;
- init_conn(bthost, le16_to_cpu(ev->handle), BDADDR_BREDR);
+ init_conn(bthost, le16_to_cpu(ev->handle), ev->bdaddr, BDADDR_BREDR);
}
static void evt_disconn_complete(struct bthost *bthost, const void *data,
else
addr_type = BDADDR_LE_RANDOM;
- init_conn(bthost, le16_to_cpu(ev->handle), addr_type);
+ init_conn(bthost, le16_to_cpu(ev->handle), ev->peer_addr, addr_type);
}
static void evt_le_meta_event(struct bthost *bthost, const void *data,