diff options
Diffstat (limited to 'src')
| -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);  }  | 
