summaryrefslogtreecommitdiff
path: root/emulator
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2014-01-10 14:51:06 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2014-01-10 16:05:06 +0200
commit262ee6bd0295d1b7daf620c9a01060414bcb0def (patch)
tree3cbb3fd43ad7c0bce6766893bd237e100d42fa3e /emulator
parent7a01a6d36de7904978d343e6e0fe92e28259aef6 (diff)
downloadbluez-262ee6bd0295d1b7daf620c9a01060414bcb0def.tar.gz
emulator/bthost: Track remote address in btconn
Diffstat (limited to 'emulator')
-rw-r--r--emulator/bthost.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/emulator/bthost.c b/emulator/bthost.c
index 99537acd4..a178fb045 100644
--- a/emulator/bthost.c
+++ b/emulator/bthost.c
@@ -69,6 +69,7 @@ struct cid_hook {
struct btconn {
uint16_t handle;
+ uint8_t bdaddr[6];
uint8_t addr_type;
uint8_t encr_mode;
uint16_t next_cid;
@@ -592,7 +593,8 @@ static void evt_conn_request(struct bthost *bthost, const void *data,
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;
@@ -602,6 +604,7 @@ static void init_conn(struct bthost *bthost, uint16_t handle, uint8_t addr_type)
memset(conn, 0, sizeof(*conn));
conn->handle = handle;
+ memcpy(conn->bdaddr, bdaddr, 6);
conn->addr_type = addr_type;
conn->next_cid = 0x0040;
@@ -623,7 +626,7 @@ static void evt_conn_complete(struct bthost *bthost, const void *data,
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,
@@ -742,7 +745,7 @@ static void evt_le_conn_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,