summaryrefslogtreecommitdiff
path: root/dbus
diff options
context:
space:
mode:
authorLukasz Stempien <l.stempien@samsung.com>2013-10-02 13:35:25 +0200
committerLubomir Rintel <lkundrak@v3.sk>2015-02-11 11:48:50 +0100
commit5e4340ec94e9963f2f2d2d27095b026883a6916f (patch)
tree0bb4c29106f6b412a83a26d57f3a921bec62928f /dbus
parentc354ee82aacd5e3af3c23dae51af36908f2774a5 (diff)
daemon fix: bus_context_new function failure behavior fixed:
- dbus_daemon_as_client: connection type changed to private - dbus_server_init_mini: vtable, refcount, watches, timeouts init added. Change-Id: Iaeb7476888f5f5774d0d4943cf39bb8368513035 Signed-off-by: Lukasz Stempien <l.stempien@samsung.com>
Diffstat (limited to 'dbus')
-rw-r--r--dbus/dbus-server.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/dbus/dbus-server.c b/dbus/dbus-server.c
index 0d8380ee..78a2aac4 100644
--- a/dbus/dbus-server.c
+++ b/dbus/dbus-server.c
@@ -183,11 +183,23 @@ _dbus_server_init_base (DBusServer *server,
return FALSE;
}
+static void mini_vtable_dummy_func(DBusServer *server)
+{
+ // Used to prevent assert errors. Pointer to function is passed to
+ // DBusServerVTable which is passed to server->vtable in
+ // dbus_server_init_mini function.
+}
+
DBusServer*
dbus_server_init_mini (char* address)
{
DBusServer *server;
+ static const DBusServerVTable dbus_server_init_mini_vtable = {
+ mini_vtable_dummy_func,
+ mini_vtable_dummy_func
+ };
+
server = dbus_new0(struct DBusServer, 1);
if(server == NULL)
return NULL;
@@ -198,6 +210,18 @@ dbus_server_init_mini (char* address)
goto failed;
server->address = address;
+ server->vtable = &dbus_server_init_mini_vtable;
+
+ _dbus_atomic_inc (&server->refcount);
+
+ server->watches = _dbus_watch_list_new ();
+ if (server->watches == NULL)
+ goto failed;
+
+ server->timeouts = _dbus_timeout_list_new();
+ if (server->timeouts == NULL)
+ goto failed;
+
return server;
failed: