diff options
Diffstat (limited to 'src/manager.c')
-rw-r--r-- | src/manager.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/manager.c b/src/manager.c index 198dd58c..3b62875f 100644 --- a/src/manager.c +++ b/src/manager.c @@ -351,12 +351,9 @@ static void manager_remove_adapter(struct btd_adapter *adapter) uint16_t dev_id = adapter_get_dev_id(adapter); const gchar *path = adapter_get_path(adapter); - manager_update_adapters(); + adapters = g_slist_remove(adapters, adapter); - g_dbus_emit_signal(connection, "/", - MANAGER_INTERFACE, "AdapterRemoved", - DBUS_TYPE_OBJECT_PATH, &path, - DBUS_TYPE_INVALID); + manager_update_adapters(); if (default_adapter_id == dev_id || default_adapter_id < 0) { int new_default = hci_get_route(NULL); @@ -364,7 +361,11 @@ static void manager_remove_adapter(struct btd_adapter *adapter) manager_set_default_adapter(new_default); } - adapters = g_slist_remove(adapters, adapter); + g_dbus_emit_signal(connection, "/", + MANAGER_INTERFACE, "AdapterRemoved", + DBUS_TYPE_OBJECT_PATH, &path, + DBUS_TYPE_INVALID); + adapter_remove(adapter); } |