Cache adapter address for quick lookup
diff --git a/plugins/hciops.c b/plugins/hciops.c
index 73a7455..c7be417 100644
--- a/plugins/hciops.c
+++ b/plugins/hciops.c
@@ -56,10 +56,12 @@
static guint ctl_io_id = 0;
#define SK(index) devs[(index)].sk
+#define BDADDR(index) devs[(index)].bdaddr
static int max_dev = -1;
static struct dev_info {
int sk;
+ bdaddr_t bdaddr;
} *devs = NULL;
static int ignore_device(struct hci_dev_info *di)
@@ -1310,6 +1312,8 @@
if (ignore_device(&di))
return;
+ bacpy(&BDADDR(index), &di.bdaddr);
+
/* Set page timeout */
if ((main_opts.flags & (1 << HCID_SET_PAGETO))) {
write_page_timeout_cp cp;
@@ -1935,9 +1939,7 @@
static int hciops_read_bdaddr(int index, bdaddr_t *bdaddr)
{
- if (hci_read_bd_addr(SK(index), bdaddr, HCI_REQ_TIMEOUT) < 0)
- return -errno;
-
+ bacpy(bdaddr, &BDADDR(index));
return 0;
}