diff options
-rw-r--r-- | gdbus/object.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gdbus/object.c b/gdbus/object.c index 0094e76b..0e979f97 100644 --- a/gdbus/object.c +++ b/gdbus/object.c @@ -862,7 +862,20 @@ gboolean g_dbus_unregister_interface(DBusConnection *connection, gboolean g_dbus_unregister_all_interfaces(DBusConnection *connection, const char *path) { - return FALSE; + struct generic_data *data = NULL; + + if (dbus_connection_get_object_path_data(connection, path, + (void *) &data) == FALSE) + return FALSE; + + if (data == NULL) + return FALSE; + + invalidate_parent_data(connection, path); + + dbus_connection_unregister_object_path(connection, path); + + return TRUE; } DBusMessage *g_dbus_create_error_valist(DBusMessage *message, const char *name, |