summaryrefslogtreecommitdiffstats
path: root/src/responder/nss/nsssrv.c
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2016-07-19 14:24:16 +0200
committerLukas Slebodnik <lslebodn@redhat.com>2016-08-16 14:54:50 +0200
commit04e870d99e72aa3160bdb6ab05d986fb4005c3ed (patch)
tree644a3068b658eb17c9583cd16aeec65d5a06e2b0 /src/responder/nss/nsssrv.c
parente07d700ed9daf0cf96607fa2d72978cb2431b794 (diff)
downloadsssd-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.c39
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) {