summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gdbus/object.c15
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,