diff options
Diffstat (limited to 'src/adapter.c')
-rw-r--r-- | src/adapter.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/adapter.c b/src/adapter.c index 332b685d..1a04729c 100644 --- a/src/adapter.c +++ b/src/adapter.c @@ -119,7 +119,8 @@ struct btd_adapter { struct hci_dev dev; /* hci info */ gboolean pairable; /* pairable state */ - gboolean first_init; /* Needed for offmode=devdown */ + gboolean first_up; /* Needed for offmode=devdown */ + gboolean initialized; }; static void adapter_set_pairable_timeout(struct btd_adapter *adapter, @@ -2517,13 +2518,13 @@ static void adapter_up(struct btd_adapter *adapter, int dd) char mode[14], srcaddr[18]; int i; uint8_t scan_mode; - gboolean powered, first_init = FALSE; + gboolean powered, first_up = FALSE; ba2str(&adapter->bdaddr, srcaddr); - if (adapter->first_init == TRUE) { - first_init = TRUE; - adapter->first_init = FALSE; + if (adapter->first_up == TRUE) { + first_up = TRUE; + adapter->first_up = FALSE; } adapter->up = 1; @@ -2549,7 +2550,7 @@ static void adapter_up(struct btd_adapter *adapter, int dd) adapter->mode = MODE_OFF; scan_mode = SCAN_DISABLED; } else if (main_opts.offmode == HCID_OFFMODE_DEVDOWN) { - if (first_init) { + if (first_up) { ioctl(dd, HCIDEVDOWN, adapter->dev_id); return; } @@ -2578,7 +2579,7 @@ proceed: /* retrieve the active connections: address the scenario where * the are active connections before the daemon've started */ - if (first_init) { + if (adapter->initialized == FALSE) { struct hci_conn_list_req *cl = NULL; struct hci_conn_info *ci; @@ -2602,9 +2603,10 @@ proceed: ADAPTER_INTERFACE, "Powered", DBUS_TYPE_BOOLEAN, &powered); - if (first_init) { + if (adapter->initialized == FALSE) { load_drivers(adapter); load_devices(adapter); + adapter->initialized = TRUE; } } @@ -2932,7 +2934,7 @@ struct btd_adapter *adapter_create(DBusConnection *conn, int id) } adapter->dev_id = id; - adapter->first_init = TRUE; + adapter->first_up = TRUE; adapter->state |= RESOLVE_NAME; adapter->path = g_strdup(path); |