summaryrefslogtreecommitdiffstats
path: root/src/sbus/sssd_dbus_connection.c
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2015-06-03 12:35:42 +0200
committerJakub Hrozek <jhrozek@redhat.com>2015-06-19 17:19:03 +0200
commitae7247551b78a05a5397d3c790afad7ef51b0d9d (patch)
treea4b35d2c670dc6f1fc044024338023ed2580fc40 /src/sbus/sssd_dbus_connection.c
parentf2bba721d18842a014ab170c207af8e8ecb6e890 (diff)
downloadsssd-ae7247551b78a05a5397d3c790afad7ef51b0d9d.tar.gz
sssd-ae7247551b78a05a5397d3c790afad7ef51b0d9d.tar.xz
sssd-ae7247551b78a05a5397d3c790afad7ef51b0d9d.zip
sbus: add support for incoming signals
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/sbus/sssd_dbus_connection.c')
-rw-r--r--src/sbus/sssd_dbus_connection.c18
1 files changed, 18 insertions, 0 deletions
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;
}