diff options
Diffstat (limited to 'hcid')
-rw-r--r-- | hcid/dbus-common.c | 5 | ||||
-rw-r--r-- | hcid/manager.c | 8 | ||||
-rw-r--r-- | hcid/manager.h | 1 |
3 files changed, 10 insertions, 4 deletions
diff --git a/hcid/dbus-common.c b/hcid/dbus-common.c index 6028bc78..1270a002 100644 --- a/hcid/dbus-common.c +++ b/hcid/dbus-common.c @@ -303,10 +303,7 @@ void hcid_dbus_exit(void) dbus_free_string_array(children); done: - dbus_connection_destroy_object_path(conn, BASE_PATH); - - if (hcid_dbus_use_experimental()) - dbus_connection_destroy_object_path(conn, "/"); + manager_cleanup(conn, BASE_PATH); set_dbus_connection(NULL); diff --git a/hcid/manager.c b/hcid/manager.c index 5c26f883..24ce93a9 100644 --- a/hcid/manager.c +++ b/hcid/manager.c @@ -539,6 +539,14 @@ dbus_bool_t manager_init(DBusConnection *conn, const char *path) NULL, NULL, NULL); } +void manager_cleanup(DBusConnection *conn, const char *path) +{ + g_dbus_unregister_interface(conn, path, MANAGER_INTERFACE); + + if (hcid_dbus_use_experimental()) + g_dbus_unregister_interface(conn, "/", MANAGER_INTERFACE); +} + int get_default_adapter(void) { return default_adapter_id; diff --git a/hcid/manager.h b/hcid/manager.h index 7d435dea..c8924583 100644 --- a/hcid/manager.h +++ b/hcid/manager.h @@ -25,6 +25,7 @@ #define MANAGER_INTERFACE "org.bluez.Manager" dbus_bool_t manager_init(DBusConnection *conn, const char *path); +void manager_cleanup(DBusConnection *conn, const char *path); int get_default_adapter(void); |