mirror of git://git.sysmocom.de/ofono
Introduce g_dbus_setup_private() to gdbus
g_dbus_setup_private() is used to setup private DBusConnection
This commit is contained in:
parent
2bece5fe0d
commit
57013cfa0d
|
@ -40,6 +40,9 @@ typedef gboolean (* GDBusSignalFunction) (DBusConnection *connection,
|
||||||
DBusConnection *g_dbus_setup_bus(DBusBusType type, const char *name,
|
DBusConnection *g_dbus_setup_bus(DBusBusType type, const char *name,
|
||||||
DBusError *error);
|
DBusError *error);
|
||||||
|
|
||||||
|
DBusConnection *g_dbus_setup_private(DBusBusType type, const char *name,
|
||||||
|
DBusError *error);
|
||||||
|
|
||||||
gboolean g_dbus_request_name(DBusConnection *connection, const char *name,
|
gboolean g_dbus_request_name(DBusConnection *connection, const char *name,
|
||||||
DBusError *error);
|
DBusError *error);
|
||||||
|
|
||||||
|
|
|
@ -262,11 +262,36 @@ static inline void setup_dbus_with_main_loop(DBusConnection *conn)
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean setup_bus(DBusConnection *conn, const char *name,
|
||||||
|
DBusError *error)
|
||||||
|
{
|
||||||
|
gboolean result;
|
||||||
|
DBusDispatchStatus status;
|
||||||
|
|
||||||
|
if (name != NULL) {
|
||||||
|
result = g_dbus_request_name(conn, name, error);
|
||||||
|
|
||||||
|
if (error != NULL) {
|
||||||
|
if (dbus_error_is_set(error) == TRUE)
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result == FALSE)
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
setup_dbus_with_main_loop(conn);
|
||||||
|
|
||||||
|
status = dbus_connection_get_dispatch_status(conn);
|
||||||
|
queue_dispatch(conn, status);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
DBusConnection *g_dbus_setup_bus(DBusBusType type, const char *name,
|
DBusConnection *g_dbus_setup_bus(DBusBusType type, const char *name,
|
||||||
DBusError *error)
|
DBusError *error)
|
||||||
{
|
{
|
||||||
DBusConnection *conn;
|
DBusConnection *conn;
|
||||||
DBusDispatchStatus status;
|
|
||||||
gboolean result;
|
gboolean result;
|
||||||
|
|
||||||
conn = dbus_bus_get(type, error);
|
conn = dbus_bus_get(type, error);
|
||||||
|
@ -279,24 +304,38 @@ DBusConnection *g_dbus_setup_bus(DBusBusType type, const char *name,
|
||||||
if (conn == NULL)
|
if (conn == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (name != NULL) {
|
result = setup_bus(conn, name, error);
|
||||||
result = g_dbus_request_name(conn, name, error);
|
|
||||||
|
|
||||||
if (error != NULL) {
|
if (result == FALSE) {
|
||||||
if (dbus_error_is_set(error) == TRUE)
|
dbus_connection_unref(conn);
|
||||||
result = FALSE;
|
return NULL;
|
||||||
}
|
|
||||||
|
|
||||||
if (result == FALSE) {
|
|
||||||
dbus_connection_unref(conn);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_dbus_with_main_loop(conn);
|
return conn;
|
||||||
|
}
|
||||||
|
|
||||||
status = dbus_connection_get_dispatch_status(conn);
|
DBusConnection *g_dbus_setup_private(DBusBusType type, const char *name,
|
||||||
queue_dispatch(conn, status);
|
DBusError *error)
|
||||||
|
{
|
||||||
|
DBusConnection *conn;
|
||||||
|
gboolean result;
|
||||||
|
|
||||||
|
conn = dbus_bus_get_private(type, error);
|
||||||
|
|
||||||
|
if (error != NULL) {
|
||||||
|
if (dbus_error_is_set(error) == TRUE)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (conn == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
result = setup_bus(conn, name, error);
|
||||||
|
|
||||||
|
if (result == FALSE) {
|
||||||
|
dbus_connection_unref(conn);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return conn;
|
return conn;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue