]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
mod_ldap: Change the LDAP connection timeout to per-connection rather than global...
authorBradley Nicholes <bnicholes@apache.org>
Wed, 18 May 2005 20:01:33 +0000 (20:01 +0000)
committerBradley Nicholes <bnicholes@apache.org>
Wed, 18 May 2005 20:01:33 +0000 (20:01 +0000)
Reviewed by: bnicholes, minfrin, pquerna

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@170805 13f79535-47bb-0310-9956-ffa450edef68

STATUS
modules/experimental/util_ldap.c

diff --git a/STATUS b/STATUS
index 0f5725292050fc12ba06422354ba880b0c1e7e6a..d84e8e31f690cbb3959b95b471a55a7e20e0d0cc 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -257,13 +257,6 @@ PATCHES TO BACKPORT FROM TRUNK:
         +1: jorton, trawick (isn't it worth a CHANGES entry for a storage
             corruption fix?)
            
-     *) mod_ldap: Change the LDAP connection timeout to per-connection rather
-        than global. Fixes PR: 34618
-       http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/ldap/util_ldap.c?rev=164919&r1=164918&r2=164919&view=diff
-       or 2.0 view patch
-       http://issues.apache.org/bugzilla/attachment.cgi?id=14873
-       +1: bnicholes, minfrin, pquerna
-       
      *) Have configure refuse to build with doomed combinations of
         internal/external APR/APR-util.
           http://svn.apache.org/viewcvs?rev=170029&view=rev
index 6c76f69517a097a59c178f4a90b1042df9713cc4..3af630bca462d1750f01c4aa7ebd3cdd6eb3baef 100644 (file)
@@ -241,6 +241,8 @@ LDAP_DECLARE(int) util_ldap_connection_open(request_rec *r,
     int result = 0;
     int failures = 0;
     int version  = LDAP_VERSION3;
+    int rc = LDAP_SUCCESS;
+    struct timeval timeOut = {10,0};    /* 10 second connection timeout */
 
     util_ldap_state_t *st = (util_ldap_state_t *)ap_get_module_config(
                                 r->server->module_config, &ldap_module);
@@ -317,6 +319,19 @@ LDAP_DECLARE(int) util_ldap_connection_open(request_rec *r,
         /* always default to LDAP V3 */
         ldap_set_option(ldc->ldap, LDAP_OPT_PROTOCOL_VERSION, &version);
 
+#ifdef LDAP_OPT_NETWORK_TIMEOUT
+        if (st->connectionTimeout > 0) {
+            timeOut.tv_sec = st->connectionTimeout;
+        }
+
+        if (st->connectionTimeout >= 0) {
+            rc = ldap_set_option(NULL, LDAP_OPT_NETWORK_TIMEOUT, (void *)&timeOut);
+            if (APR_SUCCESS != rc) {
+                ap_log_error(APLOG_MARK, APLOG_ERR, 0, r->server,
+                                 "LDAP: Could not set the connection timeout" );
+            }
+        }
+#endif
     }
 
 
@@ -1405,7 +1420,6 @@ static int util_ldap_post_config(apr_pool_t *p, apr_pool_t *plog,
 
     void *data;
     const char *userdata_key = "util_ldap_init";
-    struct timeval timeOut = {10,0};    /* 10 second connection timeout */
 
     /* util_ldap_post_config() will be called twice. Don't bother
      * going through all of the initialization on the first call
@@ -1630,20 +1644,6 @@ static int util_ldap_post_config(apr_pool_t *p, apr_pool_t *plog,
                          "LDAP: SSL support unavailable" );
     }
     
-#ifdef LDAP_OPT_NETWORK_TIMEOUT
-    if (st->connectionTimeout > 0) {
-        timeOut.tv_sec = st->connectionTimeout;
-    }
-
-    if (st->connectionTimeout >= 0) {
-        rc = ldap_set_option(NULL, LDAP_OPT_NETWORK_TIMEOUT, (void *)&timeOut);
-        if (APR_SUCCESS != rc) {
-            ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
-                             "LDAP: Could not set the connection timeout" );
-        }
-    }
-#endif
-
     return(OK);
 }