mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
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
This commit is contained in:
@@ -247,6 +247,10 @@ static int uldap_connection_open(request_rec *r,
|
|||||||
int failures = 0;
|
int failures = 0;
|
||||||
int version = LDAP_VERSION3;
|
int version = LDAP_VERSION3;
|
||||||
apr_ldap_err_t *result = NULL;
|
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 */
|
/* sanity check for NULL */
|
||||||
if (!ldc) {
|
if (!ldc) {
|
||||||
@@ -326,6 +330,22 @@ static int uldap_connection_open(request_rec *r,
|
|||||||
/* always default to LDAP V3 */
|
/* always default to LDAP V3 */
|
||||||
ldap_set_option(ldc->ldap, LDAP_OPT_PROTOCOL_VERSION, &version);
|
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";
|
const char *userdata_key = "util_ldap_init";
|
||||||
apr_ldap_err_t *result_err = NULL;
|
apr_ldap_err_t *result_err = NULL;
|
||||||
int rc;
|
int rc;
|
||||||
struct timeval timeOut = {10,0}; /* 10 second connection timeout */
|
|
||||||
|
|
||||||
/* util_ldap_post_config() will be called twice. Don't bother
|
/* util_ldap_post_config() will be called twice. Don't bother
|
||||||
* going through all of the initialization on the first call
|
* 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" );
|
"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);
|
return(OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user