summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-12-23 09:36:42 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-12-23 09:36:42 +0100
commitc004bc8c66d7c1397c732295e5c2f3fa12f5bb2c (patch)
tree67758bbc559c957d1ee43721a5b7f01dd2f67164
parent82e9ab56be4c34b744aacf2891e6e1ecb5ca9e5a (diff)
Fix signal emissions when removing adapters
-rw-r--r--src/manager.c13
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);
}