From ae7247551b78a05a5397d3c790afad7ef51b0d9d Mon Sep 17 00:00:00 2001 From: Pavel Březina Date: Wed, 3 Jun 2015 12:35:42 +0200 Subject: sbus: add support for incoming signals Reviewed-by: Jakub Hrozek --- src/sbus/sssd_dbus_connection.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/sbus/sssd_dbus_connection.c') diff --git a/src/sbus/sssd_dbus_connection.c b/src/sbus/sssd_dbus_connection.c index d0df95bb2..251ff95c5 100644 --- a/src/sbus/sssd_dbus_connection.c +++ b/src/sbus/sssd_dbus_connection.c @@ -151,6 +151,7 @@ int sbus_init_connection(TALLOC_CTX *ctx, struct sbus_connection **_conn) { struct sbus_connection *conn; + dbus_bool_t dbret; int ret; DEBUG(SSSDBG_TRACE_FUNC,"Adding connection %p\n", dbus_conn); @@ -175,6 +176,14 @@ int sbus_init_connection(TALLOC_CTX *ctx, return EIO; } + ret = sbus_incoming_signal_hash_init(conn, &conn->incoming_signals); + if (ret != EOK) { + DEBUG(SSSDBG_CRIT_FAILURE, "Cannot create incoming singals " + "hash table\n"); + talloc_free(conn); + return EIO; + } + ret = sss_hash_create(conn, 32, &conn->clients); if (ret != EOK) { DEBUG(SSSDBG_CRIT_FAILURE, "Cannot create clients hash table\n"); @@ -188,6 +197,15 @@ int sbus_init_connection(TALLOC_CTX *ctx, return ret; } + /* Set up signal handler. */ + dbret = dbus_connection_add_filter(dbus_conn, sbus_signal_handler, conn, + NULL); + if (dbret == false) { + DEBUG(SSSDBG_CRIT_FAILURE, "Cannot register signal handler\n"); + talloc_free(conn); + return EIO; + } + *_conn = conn; return ret; } -- cgit