Commit 39366a03 authored by Bradley Nicholes's avatar Bradley Nicholes
Browse files

Move the ldap_set_option() call to set the connection time from being global...

Move the ldap_set_option() call to set the connection time from being global to being connection specific.  

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@164919 13f79535-47bb-0310-9956-ffa450edef68
parent e3bf4614
Loading
Loading
Loading
Loading
+20 −17
Original line number Diff line number Diff line
@@ -247,6 +247,10 @@ static int uldap_connection_open(request_rec *r,
    int failures = 0;
    int version  = LDAP_VERSION3;
    apr_ldap_err_t *result = NULL;
    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);

    /* sanity check for NULL */
    if (!ldc) {
@@ -326,6 +330,22 @@ static int uldap_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 = apr_ldap_set_option(ldc->pool, ldc->ldap, LDAP_OPT_NETWORK_TIMEOUT,
                                     (void *)&timeOut, &(result));
            if (APR_SUCCESS != rc) {
                ap_log_error(APLOG_MARK, APLOG_ERR, 0, r->server,
                                 "LDAP: Could not set the connection timeout");
            }
        }
#endif

    
    }


@@ -1773,7 +1793,6 @@ static int util_ldap_post_config(apr_pool_t *p, apr_pool_t *plog,
    const char *userdata_key = "util_ldap_init";
    apr_ldap_err_t *result_err = NULL;
    int rc;
    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
@@ -1907,22 +1926,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 = apr_ldap_set_option(p, NULL, LDAP_OPT_NETWORK_TIMEOUT,
                                 (void *)&timeOut, &(result_err));
        if (APR_SUCCESS != rc) {
            ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
                             "LDAP: Could not set the connection timeout");
        }
    }
#endif

    
    return(OK);
}