diff options
author | Stephen Gallagher <sgallagh@redhat.com> | 2011-04-15 09:20:48 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-04-15 11:36:51 -0400 |
commit | f858925bda6c5dbbe178b9abb6e85d8ce53c195f (patch) | |
tree | 5597d7289682a7d432ebfdfda554bcba8a5db1ac /src/responder/nss | |
parent | 87cc48df526d01e5085a1acf736e11219be34760 (diff) | |
download | sssd-f858925bda6c5dbbe178b9abb6e85d8ce53c195f.tar.gz sssd-f858925bda6c5dbbe178b9abb6e85d8ce53c195f.tar.bz2 sssd-f858925bda6c5dbbe178b9abb6e85d8ce53c195f.zip |
Fix a regression with the negative cache in multi-domain configurations
Diffstat (limited to 'src/responder/nss')
-rw-r--r-- | src/responder/nss/nsssrv_cmd.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c index 2153d649..b897c7cd 100644 --- a/src/responder/nss/nsssrv_cmd.c +++ b/src/responder/nss/nsssrv_cmd.c @@ -532,12 +532,17 @@ static int nss_cmd_getpwnam_search(struct nss_dom_ctx *dctx) /* if neg cached, return we didn't find it */ if (ret == EEXIST) { - DEBUG(2, ("User [%s] does not exist! (negative cache)\n", name)); + DEBUG(2, ("User [%s] does not exist in [%s]! (negative cache)\n", + name, dom->name)); /* if a multidomain search, try with next */ if (cmdctx->check_next) { dom = dom->next; continue; } + /* There are no further domains or this was a + * fully-qualified user request. + */ + return ENOENT; } DEBUG(4, ("Requesting info for [%s@%s]\n", name, dom->name)); @@ -1794,12 +1799,17 @@ static int nss_cmd_getgrnam_search(struct nss_dom_ctx *dctx) /* if neg cached, return we didn't find it */ if (ret == EEXIST) { - DEBUG(2, ("Group [%s] does not exist! (negative cache)\n", name)); + DEBUG(2, ("Group [%s] does not exist in [%s]! (negative cache)\n", + name, dom->name)); /* if a multidomain search, try with next */ if (cmdctx->check_next) { dom = dom->next; continue; } + /* There are no further domains or this was a + * fully-qualified user request. + */ + return ENOENT; } DEBUG(4, ("Requesting info for [%s@%s]\n", name, dom->name)); @@ -2827,12 +2837,17 @@ static int nss_cmd_initgroups_search(struct nss_dom_ctx *dctx) /* if neg cached, return we didn't find it */ if (ret == EEXIST) { - DEBUG(2, ("User [%s] does not exist! (negative cache)\n", name)); + DEBUG(2, ("User [%s] does not exist in [%s]! (negative cache)\n", + dom->name, name)); /* if a multidomain search, try with next */ if (cmdctx->check_next) { dom = dom->next; continue; } + /* There are no further domains or this was a + * fully-qualified user request. + */ + return ENOENT; } DEBUG(4, ("Requesting info for [%s@%s]\n", name, dom->name)); |