dbus_bus_get VS dbus_connection_open
hp at redhat.com
Fri Sep 1 12:11:03 PDT 2006
frederic heem wrote:
> Using dbus_connection_open instead of dbus_bus_get results in significant
> differences. dbus_connection_open is used to avoid using the already running
> system and session bus.
> The problem is the that "org_freedesktop_DBus_request_name" method returns the
> following error: "Client tried to send a message other than Hello without
> being registered". Digging into the code shows that the client code that
> uses "dbus_connection_open" also needs to call "dbus_bus_register". Using
> dbus_bus_get internally calls dbus_connection_open and dbus_bus_register.
> Why not invoking dbus_bus_register inside dbus_connection_open ?
The bus is only one possible remote process; you can also just open a
connection to some random app, if you like. dbus_bus_get pretty much
_is_ dbus_connection_open + dbus_bus_register.
> Also, dbus-send and dbus-monitor have been modified to accept an address name
> to use with dbus_connection_open. The path contains this modifications.
Thanks for the patch, some comments:
- CLI_OPTION_DBUS_ADDRESS probably shouldn't be a #define if none of
the other options are, I don't think it makes things clearer
- the variables pcAddress, pcBus, etc. have the wrong naming convention
(fooBar vs. foo_bar)
- rather than == FALSE should use !
- s/examples invocation/example invocations/
- I believe the code crashes if --address has no '=' after it?
- "return (-1)" should be "exit (1)" to match the other code
More information about the dbus