From f6295c582884eaac91145b8e1f7dae2c528ecda7 Mon Sep 17 00:00:00 2001 From: "Eduardo Lima (Etrunko)" Date: Thu, 27 Jun 2013 17:24:46 -0300 Subject: [PATCH] eldbus: Call dbus_bus_register() for TYPE_ADDRESS connections From D-Bus documentation: http://dbus.freedesktop.org/doc/api/html/group__DBusBus.html dbus_bus_register(): If you open a bus connection with dbus_connection_open() or dbus_connection_open_private() you will have to dbus_bus_register() yourself, or make the appropriate registration method calls yourself. Signed-off-by: Eduardo Lima (Etrunko) --- src/lib/eldbus/eldbus_core.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/lib/eldbus/eldbus_core.c b/src/lib/eldbus/eldbus_core.c index a7af40fc9e..f47d440e42 100644 --- a/src/lib/eldbus/eldbus_core.c +++ b/src/lib/eldbus/eldbus_core.c @@ -989,13 +989,22 @@ _connection_get(Eldbus_Connection_Type type, const char *address) else conn->dbus_conn = dbus_bus_get_private(type - 1, &err); - if (dbus_error_is_set(&err)) + if (!conn->dbus_conn || dbus_error_is_set(&err)) { free(conn); ERR("Error connecting to bus: %s", err.message); return NULL; } + if (type == ELDBUS_CONNECTION_TYPE_ADDRESS && + !dbus_bus_register(conn->dbus_conn, &err)) + { + dbus_connection_close(conn->dbus_conn); + free(conn); + ERR("Error registering with bus: %s", err.message); + return NULL; + } + eldbus_connection_setup(conn); conn->type = type; conn->refcount = 1;