diff --git a/emulator/bthost.c b/emulator/bthost.c
index 2c96bc5..afe6f1a 100644
--- a/emulator/bthost.c
+++ b/emulator/bthost.c
#include <endian.h>
#include <stdbool.h>
+#include "bluetooth/bluetooth.h"
+
#include "monitor/bt.h"
#include "bthost.h"
struct btconn {
uint16_t handle;
+ uint8_t addr_type;
uint16_t next_cid;
struct l2conn *l2conns;
struct btconn *next;
sizeof(cmd));
}
-static void init_conn(struct bthost *bthost, uint16_t handle)
+static void init_conn(struct bthost *bthost, uint16_t handle, uint8_t addr_type)
{
struct btconn *conn;
memset(conn, 0, sizeof(*conn));
conn->handle = handle;
+ conn->addr_type = addr_type;
conn->next_cid = 0x0040;
conn->next = bthost->conns;
if (ev->status)
return;
- init_conn(bthost, le16_to_cpu(ev->handle));
+ init_conn(bthost, le16_to_cpu(ev->handle), BDADDR_BREDR);
}
static void evt_disconn_complete(struct bthost *bthost, const void *data,
if (ev->status)
return;
- init_conn(bthost, le16_to_cpu(ev->handle));
+ init_conn(bthost, le16_to_cpu(ev->handle), ev->peer_addr_type);
}
static void evt_le_meta_event(struct bthost *bthost, const void *data,