Re: problem with networkmanager dbus api

Sebastian Dransfeld wrote:
Sebastian Dransfeld wrote:

I try to use the org.freedesktop.DBus.Properties.GetAll() method call with networkmanager like this (change device to one you got):

dbus-send --system --print-reply --type=method_call \
--dest=org.freedesktop.NetworkManager \
/org/freedesktop/Hal/devices/net_00_01_6c_ea_69_1b \
org.freedesktop.DBus.Properties.GetAll \

This will return nothing, as libdbus-glib maps dbus properties to gobject properties. In networkmanager these do not match:

gobject        dbus
udi        Udi
interface    Interface
driver        Driver
capabilities    Capabilities
ip4-address    Ip4Address

The gobject properties do however have a nick which matches the dbus property name.

Where should this problem be solved? networkmamager or dbus-glib?

If someone can suggest a solution, I can try to create a patch.

And of course:
- Ubuntu 8.10
- libdbus-glib-1-2              0.76-1
- network-manager               0.7~~svn20081018t105859-0ubuntu1

And fixed it. Missing _dbus_gutils_wincaps_to_uscore() in dbus-glib's getall implementation. Where should I send this patch?

Best regards
Sebastian Dransfeld
--- dbus/dbus-gobject.c.orig	2008-10-28 22:42:36.000000000 +0100
+++ dbus/dbus-gobject.c	2008-10-28 22:42:39.000000000 +0100
@@ -796,6 +796,7 @@
       const char *prop_ifname;
       const char *prop_name;
+      char *gobject_prop_name;
       GParamSpec *pspec;
       GType value_gtype;
       GValue value = {0, };
@@ -815,7 +816,9 @@
-      pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (object), prop_name);
+      gobject_prop_name = _dbus_gutils_wincaps_to_uscore (prop_name);
+      pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (object), gobject_prop_name);
+      g_free (gobject_prop_name);
       if (pspec == NULL)
           g_warning ("introspection data references non-existing property %s", prop_name);

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]