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) <eduardo.lima@intel.com>
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;