diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2014-01-10 14:51:06 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2014-01-10 16:05:06 +0200 |
commit | 262ee6bd0295d1b7daf620c9a01060414bcb0def (patch) | |
tree | 3cbb3fd43ad7c0bce6766893bd237e100d42fa3e /emulator | |
parent | 7a01a6d36de7904978d343e6e0fe92e28259aef6 (diff) | |
download | bluez-262ee6bd0295d1b7daf620c9a01060414bcb0def.tar.gz |
emulator/bthost: Track remote address in btconn
Diffstat (limited to 'emulator')
-rw-r--r-- | emulator/bthost.c | 9 |
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, |