From b81ad4a7c59cade13d52216f805d904392627136 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Fri, 9 May 2014 19:45:15 +0200 Subject: SBUS: Add SBUS_CONN_TYPE_SYSBUS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Stef Walter --- src/responder/ifp/ifpsrv.c | 2 +- src/sbus/sssd_dbus.h | 3 ++- src/sbus/sssd_dbus_connection.c | 6 ++++-- 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! */ -- cgit