summaryrefslogtreecommitdiffstats
path: root/src/responder/nss/nsssrv_cmd.c
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-01-03 00:43:58 -0500
committerStephen Gallagher <sgallagh@redhat.com>2012-03-19 09:45:25 -0400
commitc3ef027218fe9a7d16a70ca9d2f53e3d995e369f (patch)
tree4bb77a6725d882a17c6583d5efeadde12715f5b5 /src/responder/nss/nsssrv_cmd.c
parent1171986bdc3011555c5b62a9d9ee9f7481f48cdc (diff)
downloadsssd-c3ef027218fe9a7d16a70ca9d2f53e3d995e369f.tar.gz
sssd-c3ef027218fe9a7d16a70ca9d2f53e3d995e369f.tar.xz
sssd-c3ef027218fe9a7d16a70ca9d2f53e3d995e369f.zip
nsssrv: add handling of memory cache group map
Diffstat (limited to 'src/responder/nss/nsssrv_cmd.c')
-rw-r--r--src/responder/nss/nsssrv_cmd.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index cda2e563f..4706e98b8 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -1676,7 +1676,7 @@ done:
static int fill_grent(struct sss_packet *packet,
struct sss_domain_info *dom,
struct nss_ctx *nctx,
- bool filter_groups,
+ bool filter_groups, bool gr_mmap_cache,
struct ldb_message **msgs,
int *count)
{
@@ -1917,6 +1917,16 @@ static int fill_grent(struct sss_packet *packet,
}
num++;
+
+ if (gr_mmap_cache) {
+ ret = sss_mmap_cache_gr_store(nctx->grp_mc_ctx,
+ &fullname, &pwfield, gid, memnum,
+ (char *)&body[rzero] + STRS_ROFFSET +
+ fullname.len + pwfield.len,
+ rsize - STRS_ROFFSET -
+ fullname.len - pwfield.len);
+ }
+
continue;
}
talloc_zfree(tmp_ctx);
@@ -1957,7 +1967,7 @@ static int nss_cmd_getgr_send_reply(struct nss_dom_ctx *dctx, bool filter)
i = dctx->res->count;
ret = fill_grent(cctx->creq->out,
dctx->domain,
- nctx, filter,
+ nctx, filter, true,
dctx->res->msgs, &i);
if (ret) {
return ret;
@@ -2824,7 +2834,7 @@ static int nss_cmd_retgrent(struct cli_ctx *cctx, int num)
ret = fill_grent(cctx->creq->out,
gdom->domain,
- nctx, true, msgs, &n);
+ nctx, true, false, msgs, &n);
cctx->grent_cur += n;
}