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:41:24 +0100
commit010c4c46dd4fc4cd81d165bda895febf26ad25da (patch)
treee061b4d7fa950ea7baa4da3562249bf44b2bdb27
parent8ba17dc41f650d47a4135203ffa8e1580cbad94e (diff)
downloadmmsd-010c4c46dd4fc4cd81d165bda895febf26ad25da.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);