diff options
author | Simo Sorce <simo@redhat.com> | 2012-01-03 00:43:58 -0500 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2012-03-19 09:45:25 -0400 |
commit | c3ef027218fe9a7d16a70ca9d2f53e3d995e369f (patch) | |
tree | 4bb77a6725d882a17c6583d5efeadde12715f5b5 /src/responder/nss/nsssrv_cmd.c | |
parent | 1171986bdc3011555c5b62a9d9ee9f7481f48cdc (diff) | |
download | sssd-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.c | 16 |
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; } |