diff options
author | Lukasz Stempien <l.stempien@samsung.com> | 2013-10-02 13:35:25 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2015-02-11 11:48:50 +0100 |
commit | 5e4340ec94e9963f2f2d2d27095b026883a6916f (patch) | |
tree | 0bb4c29106f6b412a83a26d57f3a921bec62928f /dbus | |
parent | c354ee82aacd5e3af3c23dae51af36908f2774a5 (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.c | 24 |
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: |