Loading CHANGES +4 −0 Changes for CHANGES: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,10 @@ 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>] Loading modules/proxy/proxy_util.c +18 −0 Changes for modules/proxy/proxy_util.c: 18 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2358,6 +2358,17 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function, "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); Loading @@ -2374,6 +2385,13 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function, 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); Loading Loading
CHANGES +4 −0 Changes for CHANGES: 4 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2,6 +2,10 @@ 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>] Loading
modules/proxy/proxy_util.c +18 −0 Changes for modules/proxy/proxy_util.c: 18 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2358,6 +2358,17 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function, "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); Loading @@ -2374,6 +2385,13 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function, 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); Loading