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.
---
gdbus/object.c | 9 ++++++---
1 file 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);
--
1.8.0.1