diff options
author | Pavel Březina <pbrezina@redhat.com> | 2016-07-19 14:24:16 +0200 |
---|---|---|
committer | Lukas Slebodnik <lslebodn@redhat.com> | 2016-08-16 14:54:50 +0200 |
commit | 04e870d99e72aa3160bdb6ab05d986fb4005c3ed (patch) | |
tree | 644a3068b658eb17c9583cd16aeec65d5a06e2b0 /src/responder/nss/nsssrv.c | |
parent | e07d700ed9daf0cf96607fa2d72978cb2431b794 (diff) | |
download | sssd-04e870d99e72aa3160bdb6ab05d986fb4005c3ed.tar.gz sssd-04e870d99e72aa3160bdb6ab05d986fb4005c3ed.tar.xz sssd-04e870d99e72aa3160bdb6ab05d986fb4005c3ed.zip |
DP: Remove old data provider interface
Reverse data provider interface is moved to a better location in
NSS responder. All responders now can have an sbus interface
defined per data provider connection. The unused old data provider
interface is removed.
Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Diffstat (limited to 'src/responder/nss/nsssrv.c')
-rw-r--r-- | src/responder/nss/nsssrv.c | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/src/responder/nss/nsssrv.c b/src/responder/nss/nsssrv.c index 8be3455e5..05b51ecdf 100644 --- a/src/responder/nss/nsssrv.c +++ b/src/responder/nss/nsssrv.c @@ -37,6 +37,7 @@ #include "responder/nss/nsssrv_private.h" #include "responder/nss/nsssrv_mmap_cache.h" #include "responder/nss/nsssrv_netgroup.h" +#include "responder/nss/nss_iface.h" #include "responder/common/negcache.h" #include "db/sysdb.h" #include "confdb/confdb.h" @@ -327,7 +328,7 @@ done: return ret; } -static int nss_update_memcache(struct sbus_request *dbus_req, void *data) +int nss_update_memcache(struct sbus_request *dbus_req, void *data) { struct resp_ctx *rctx = talloc_get_type(data, struct resp_ctx); struct nss_ctx *nctx = talloc_get_type(rctx->pvt_ctx, struct nss_ctx); @@ -338,37 +339,24 @@ static int nss_update_memcache(struct sbus_request *dbus_req, void *data) return EOK; } -static int nss_memcache_initgr_check(struct sbus_request *dbus_req, void *data) +int nss_memorycache_update_initgroups(struct sbus_request *sbus_req, + void *data, + const char *user, + const char *domain, + uint32_t *groups, + int num_groups) { struct resp_ctx *rctx = talloc_get_type(data, struct resp_ctx); struct nss_ctx *nctx = talloc_get_type(rctx->pvt_ctx, struct nss_ctx); - char *user; - char *domain; - uint32_t *groups; - int gnum; - - if (!sbus_request_parse_or_finish(dbus_req, - DBUS_TYPE_STRING, &user, - DBUS_TYPE_STRING, &domain, - DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &groups, &gnum, - DBUS_TYPE_INVALID)) { - return EOK; /* handled */ - } - DEBUG(SSSDBG_TRACE_LIBS, - "Got request for [%s@%s]\n", user, domain); + DEBUG(SSSDBG_TRACE_LIBS, "Updating inigroups memory cache of [%s@%s]\n", + user, domain); - nss_update_initgr_memcache(nctx, user, domain, gnum, groups); + nss_update_initgr_memcache(nctx, user, domain, num_groups, groups); - return sbus_request_return_and_finish(dbus_req, DBUS_TYPE_INVALID); + return iface_nss_memorycache_UpdateInitgroups_finish(sbus_req); } -static struct data_provider_rev_iface nss_dp_methods = { - { &data_provider_rev_iface_meta, 0 }, - .updateCache = nss_update_memcache, - .initgrCheck = nss_memcache_initgr_check -}; - static void nss_dp_reconnect_init(struct sbus_connection *conn, int status, void *pvt) { @@ -419,7 +407,8 @@ int nss_process_init(TALLOC_CTX *mem_ctx, NSS_SBUS_SERVICE_NAME, NSS_SBUS_SERVICE_VERSION, &monitor_nss_methods, - "NSS", &nss_dp_methods.vtable, + "NSS", + nss_get_sbus_interface(), nss_connection_setup, &rctx); if (ret != EOK) { |