summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2014-05-09 19:45:15 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-05-13 21:46:44 +0200
commitb81ad4a7c59cade13d52216f805d904392627136 (patch)
tree3bfa542daa798c7612564221737fd13396ba703c
parent393099fb7caa2c128277e26ba3463aa7f95a0ebb (diff)
downloadsssd-b81ad4a7c59cade13d52216f805d904392627136.tar.gz
sssd-b81ad4a7c59cade13d52216f805d904392627136.tar.xz
sssd-b81ad4a7c59cade13d52216f805d904392627136.zip
SBUS: Add SBUS_CONN_TYPE_SYSBUS
We need to retrieve caller IDs for each call from the system bus. This commit adds a new SBUS connection type that identifies system bus connection. The connection is used in the IFP provider. Reviewed-by: Pavel Březina <pbrezina@redhat.com> Reviewed-by: Stef Walter <stefw@redhat.com>
-rw-r--r--src/responder/ifp/ifpsrv.c2
-rw-r--r--src/sbus/sssd_dbus.h3
-rw-r--r--src/sbus/sssd_dbus_connection.c6
3 files changed, 7 insertions, 4 deletions
diff --git a/src/responder/ifp/ifpsrv.c b/src/responder/ifp/ifpsrv.c
index e76f3bdb0..2f98cf838 100644
--- a/src/responder/ifp/ifpsrv.c
+++ b/src/responder/ifp/ifpsrv.c
@@ -150,7 +150,7 @@ sysbus_init(TALLOC_CTX *mem_ctx,
/* Integrate with tevent loop */
ret = sbus_init_connection(system_bus, ev, conn,
- SBUS_CONN_TYPE_SHARED,
+ SBUS_CONN_TYPE_SYSBUS,
&system_bus->conn);
if (ret != EOK) {
DEBUG(SSSDBG_CRIT_FAILURE,
diff --git a/src/sbus/sssd_dbus.h b/src/sbus/sssd_dbus.h
index 0fd499cbe..8ba108ee3 100644
--- a/src/sbus/sssd_dbus.h
+++ b/src/sbus/sssd_dbus.h
@@ -50,7 +50,8 @@ typedef int (*sbus_server_conn_init_fn)(struct sbus_connection *, void *);
enum {
SBUS_CONN_TYPE_PRIVATE = 1,
- SBUS_CONN_TYPE_SHARED
+ SBUS_CONN_TYPE_SHARED,
+ SBUS_CONN_TYPE_SYSBUS
};
enum {
diff --git a/src/sbus/sssd_dbus_connection.c b/src/sbus/sssd_dbus_connection.c
index 7ea70efa5..58005c238 100644
--- a/src/sbus/sssd_dbus_connection.c
+++ b/src/sbus/sssd_dbus_connection.c
@@ -275,8 +275,10 @@ static int connection_destructor(void *ctx)
/* Private connections must be closed explicitly */
dbus_connection_close(conn->dbus.conn);
}
- else if (conn->connection_type == SBUS_CONN_TYPE_SHARED) {
- /* Shared connections are destroyed when their last reference is removed */
+ else if (conn->connection_type == SBUS_CONN_TYPE_SHARED ||
+ conn->connection_type == SBUS_CONN_TYPE_SYSBUS) {
+ /* Shared and system bus connections are destroyed when their last
+ reference is removed */
}
else {
/* Critical Error! */