gdbus: Remove root node 'name' attribute in introspection
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Fri, 14 Jan 2011 15:14:21 +0000 (16:14 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 19 Jan 2011 16:25:44 +0000 (17:25 +0100)
generate_introspection_xml generates the root <node> tags with a
'name' attribute. This seems to be a valid attribute but it is not
consistent with the way the D-Bus daemon generates empty nodes.

For example if we register "/foo/bar", D-Bus daemon will generate for
"/foo" a introspection which looks like this:

<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>
  <node name="bar"/>
</node>

and generate_introspection_xml generates for "/foo/bar":

<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node name="/foo/bar">
</node>

Just don't add the 'name' attribute to the root node.  The GLib
binding for D-Bus does it the same way.

gdbus/object.c

index 49006ec..eaa2e1a 100644 (file)
@@ -162,7 +162,7 @@ static void generate_introspection_xml(DBusConnection *conn,
 
        gstr = g_string_new(DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE);
 
-       g_string_append_printf(gstr, "<node name=\"%s\">\n", path);
+       g_string_append_printf(gstr, "<node>\n");
 
        for (list = data->interfaces; list; list = list->next) {
                struct interface_data *iface = list->data;