summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/sdap_async_initgroups.c
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2012-11-22 12:21:52 +0100
committerJakub Hrozek <jhrozek@redhat.com>2013-03-21 17:58:05 +0100
commit4709ff46db0dbe073aef061b796d2fd7adeaf18f (patch)
tree941e507ffdf6e6d0fef31a043a808c6a00d70029 /src/providers/ldap/sdap_async_initgroups.c
parent6b0a7c72bb841d6885a620c68bd51d55109b66c7 (diff)
downloadsssd-4709ff46db0dbe073aef061b796d2fd7adeaf18f.tar.gz
sssd-4709ff46db0dbe073aef061b796d2fd7adeaf18f.tar.xz
sssd-4709ff46db0dbe073aef061b796d2fd7adeaf18f.zip
LDAP: If deref search fails, try again without deref
https://fedorahosted.org/sssd/ticket/1660
Diffstat (limited to 'src/providers/ldap/sdap_async_initgroups.c')
-rw-r--r--src/providers/ldap/sdap_async_initgroups.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/providers/ldap/sdap_async_initgroups.c b/src/providers/ldap/sdap_async_initgroups.c
index 23be22fd1..5a6ba0285 100644
--- a/src/providers/ldap/sdap_async_initgroups.c
+++ b/src/providers/ldap/sdap_async_initgroups.c
@@ -880,7 +880,17 @@ static void sdap_initgr_nested_deref_done(struct tevent_req *subreq)
&num_results,
&deref_result);
talloc_zfree(subreq);
- if (ret != EOK && ret != ENOENT) {
+ if (ret == ENOTSUP) {
+ ret = sdap_initgr_nested_noderef_search(req);
+ if (ret != EAGAIN) {
+ if (ret == EOK) {
+ tevent_req_done(req);
+ } else {
+ tevent_req_error(req, ret);
+ }
+ }
+ return;
+ } else if (ret != EOK && ret != ENOENT) {
tevent_req_error(req, ret);
return;
} else if (ret == ENOENT || deref_result == NULL) {