aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@profusion.mobi>2012-11-29 11:19:31 -0200
committerMarcel Holtmann <marcel@holtmann.org>2012-11-29 17:40:02 +0100
commita4cade53f2607c836fe7e9978eb85fc936d35842 (patch)
tree6819fc8c389bf52acf570c80b25da8adb606b154
parent65e5c05df851f26e98422701da5b48226a35bee2 (diff)
downloadpacrunner-a4cade53f2607c836fe7e9978eb85fc936d35842.tar.gz
gdbus: Don't register DBus.Properties with no properties
Delay registering DBus.Properties interface until the moment there are properties on that path. This is needed for objects that currently don't expose any property to not export the interface.
-rw-r--r--gdbus/object.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index 3101ca6..47116bd 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -1213,9 +1213,6 @@ static struct generic_data *object_path_ref(DBusConnection *connection,
manager_methods, manager_signals,
NULL, data, NULL);
- add_interface(data, DBUS_INTERFACE_PROPERTIES, properties_methods,
- properties_signals, NULL, data, NULL);
-
return data;
}
@@ -1336,6 +1333,12 @@ gboolean g_dbus_register_interface(DBusConnection *connection,
return FALSE;
}
+ if (properties != NULL && !find_interface(data->interfaces,
+ DBUS_INTERFACE_PROPERTIES))
+ add_interface(data, DBUS_INTERFACE_PROPERTIES,
+ properties_methods, properties_signals, NULL,
+ data, NULL);
+
add_interface(data, name, methods, signals, properties, user_data,
destroy);