Changes with Apache 2.3.0
[ When backported to 2.2.x, remove entry from this file ]
- *) mod_proxy: Make the connection timeout to backends work by temporarily
- setting the socket to non blocking mode.
- [Matt Stevenson <mavricknzwork yahoo.com>]
-
*) Worker MPM: Crosscheck that idle workers are still available before using
them and thus preventing an overflow of the worker queue which causes
a SegFault. PR 45605 [Denis Ustimenko <denusk gmail.com>]
"proxy: %s: fam %d socket created to connect to %s",
proxy_function, backend_addr->family, worker->hostname);
- /*
- * Temporarily set the socket to non blocking to make connection
- * timeouts (set via connectiontimeout) work.
- */
- if ((rv = apr_socket_opt_set(newsock, APR_SO_NONBLOCK, 1))
- != APR_SUCCESS) {
- ap_log_error(APLOG_MARK, APLOG_ERR, rv, s,
- "apr_socket_opt_set(SO_NONBLOCK): Failed to set"
- " the socket to non blocking mode");
- }
-
/* make the connection out of the socket */
rv = apr_socket_connect(newsock, backend_addr);
continue;
}
- if ((rv = apr_socket_opt_set(newsock, APR_SO_NONBLOCK, 0))
- != APR_SUCCESS) {
- ap_log_error(APLOG_MARK, APLOG_ERR, rv, s,
- "apr_socket_opt_set(SO_NONBLOCK): Failed to set"
- " the socket to blocking mode");
- }
-
/* Set a timeout on the socket */
if (worker->timeout_set == 1) {
apr_socket_timeout_set(newsock, worker->timeout);