summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/responder/nss/nsssrv_cmd.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/server/responder/nss/nsssrv_cmd.c b/server/responder/nss/nsssrv_cmd.c
index 97178978..6be78900 100644
--- a/server/responder/nss/nsssrv_cmd.c
+++ b/server/responder/nss/nsssrv_cmd.c
@@ -1636,6 +1636,24 @@ static int fill_grent(struct sss_packet *packet,
continue;
}
nlen = p - name;
+
+ if (nctx->filter_users_in_groups) {
+ char t;
+ t = *p;
+ *p = '\0';
+ ret = nss_ncache_check_user(nctx->ncache,
+ nctx->neg_timeout,
+ domain, name);
+ *p = t;
+ if (ret == EEXIST) {
+ DEBUG(6, ("Group [%s] member [%.*s@%s] filtered out!"
+ " (negative cache)\n",
+ (char *)&body[rzero+STRS_ROFFSET],
+ nlen, name, domain));
+ continue;
+ }
+ }
+
p++;
if (strncmp(p, SYSDB_USERS_CONTAINER, sysuserslen) != 0) {
DEBUG(1, ("Member [%.*s] not in the std format ?! "