From 397bc52dd09a8c032abc7ea47a6d81dba5957464 Mon Sep 17 00:00:00 2001 From: Pavel Březina Date: Fri, 15 Jan 2016 12:47:10 +0100 Subject: SBUS: Add sbus_conn_register_iface_map MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Sumit Bose Reviewed-by: Jakub Hrozek Reviewed-by: Lukáš Slebodník --- src/responder/ifp/ifp_iface.c | 20 ++------------------ src/sbus/sssd_dbus.h | 9 +++++++++ src/sbus/sssd_dbus_interface.c | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/responder/ifp/ifp_iface.c b/src/responder/ifp/ifp_iface.c index 86d8d338c..d062e6c8f 100644 --- a/src/responder/ifp/ifp_iface.c +++ b/src/responder/ifp/ifp_iface.c @@ -141,12 +141,7 @@ struct iface_ifp_cache_object iface_ifp_cache_object_group = { .Remove = ifp_cache_object_remove_group }; -struct iface_map { - const char *path; - struct sbus_vtable *vtable; -}; - -static struct iface_map iface_map[] = { +static struct sbus_iface_map iface_map[] = { { IFP_PATH, &iface_ifp.vtable }, { IFP_PATH_DOMAINS_TREE, &iface_ifp_domains.vtable }, { IFP_PATH_COMPONENTS_TREE, &iface_ifp_components.vtable }, @@ -163,16 +158,5 @@ static struct iface_map iface_map[] = { errno_t ifp_register_sbus_interface(struct sbus_connection *conn, void *pvt) { - errno_t ret; - int i; - - for (i = 0; iface_map[i].path != NULL; i++) { - ret = sbus_conn_register_iface(conn, iface_map[i].vtable, - iface_map[i].path, pvt); - if (ret != EOK) { - return ret; - } - } - - return EOK; + return sbus_conn_register_iface_map(conn, iface_map, pvt); } diff --git a/src/sbus/sssd_dbus.h b/src/sbus/sssd_dbus.h index c1e27746e..2fc8e36d8 100644 --- a/src/sbus/sssd_dbus.h +++ b/src/sbus/sssd_dbus.h @@ -181,6 +181,15 @@ int sbus_conn_register_iface(struct sbus_connection *conn, const char *object_path, void *handler_data); +struct sbus_iface_map { + const char *path; + struct sbus_vtable *vtable; +}; + +errno_t sbus_conn_register_iface_map(struct sbus_connection *conn, + struct sbus_iface_map *map, + void *pvt); + void sbus_conn_register_nodes(struct sbus_connection *conn, const char *path, diff --git a/src/sbus/sssd_dbus_interface.c b/src/sbus/sssd_dbus_interface.c index f8046c7c1..e96e29b79 100644 --- a/src/sbus/sssd_dbus_interface.c +++ b/src/sbus/sssd_dbus_interface.c @@ -970,6 +970,24 @@ sbus_conn_register_iface(struct sbus_connection *conn, return ret; } +errno_t +sbus_conn_register_iface_map(struct sbus_connection *conn, + struct sbus_iface_map *map, + void *pvt) +{ + errno_t ret; + int i; + + for (i = 0; map[i].path != NULL; i++) { + ret = sbus_conn_register_iface(conn, map[i].vtable, map[i].path, pvt); + if (ret != EOK) { + return ret; + } + } + + return EOK; +} + void sbus_conn_register_nodes(struct sbus_connection *conn, const char *path, -- cgit