diff options
author | Eric Covener <covener@apache.org> | 2011-03-12 12:02:40 +0000 |
---|---|---|
committer | Eric Covener <covener@apache.org> | 2011-03-12 12:02:40 +0000 |
commit | 9885316bba73158fc5bba55daa6ce1a89887364e (patch) | |
tree | 172759cd068448bc1356af9177f68a38ac9d25bc /modules/ldap | |
parent | 6715be7c2cc730c2e280029075739b1fe280695b (diff) | |
download | httpd-9885316bba73158fc5bba55daa6ce1a89887364e.tar.gz |
avoid apr_ldap_rebind_{add,remove} when referral chasing is turned off
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1080922 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/ldap')
-rw-r--r-- | modules/ldap/util_ldap.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/ldap/util_ldap.c b/modules/ldap/util_ldap.c index e714938a61..11646ff7d0 100644 --- a/modules/ldap/util_ldap.c +++ b/modules/ldap/util_ldap.c @@ -200,7 +200,9 @@ static apr_status_t uldap_connection_cleanup(void *param) if (ldc) { /* Release the rebind info for this connection. No more referral rebinds required. */ - apr_ldap_rebind_remove(ldc->ldap); + if (ldc->ChaseReferrals == AP_LDAP_CHASEREFERRALS_ON) { + apr_ldap_rebind_remove(ldc->ldap); + } /* unbind and disconnect from the LDAP server */ uldap_connection_unbind(ldc); @@ -335,15 +337,17 @@ static int uldap_connection_init(request_rec *r, return(result->rc); } + if (ldc->ChaseReferrals == AP_LDAP_CHASEREFERRALS_ON) { /* Now that we have an ldap struct, add it to the referral list for rebinds. */ rc = apr_ldap_rebind_add(ldc->pool, ldc->ldap, ldc->binddn, ldc->bindpw); if (rc != APR_SUCCESS) { - ap_log_error(APLOG_MARK, APLOG_ERR, 0, r->server, + ap_log_error(APLOG_MARK, APLOG_ERR, rc, r->server, "LDAP: Unable to add rebind cross reference entry. Out of memory?"); uldap_connection_unbind(ldc); ldc->reason = "LDAP: Unable to add rebind cross reference entry."; return(rc); } + } /* always default to LDAP V3 */ ldap_set_option(ldc->ldap, LDAP_OPT_PROTOCOL_VERSION, &version); @@ -374,6 +378,7 @@ static int uldap_connection_init(request_rec *r, ldap_option = ldc->deref; ldap_set_option(ldc->ldap, LDAP_OPT_DEREF, &ldap_option); + if (ldc->ChaseReferrals == AP_LDAP_CHASEREFERRALS_ON) { /* Set options for rebind and referrals. */ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "LDAP: Setting referrals to %s.", @@ -414,6 +419,7 @@ static int uldap_connection_init(request_rec *r, return(result->rc); } } + } /*XXX All of the #ifdef's need to be removed once apr-util 1.2 is released */ #ifdef APR_LDAP_OPT_VERIFY_CERT |