From: Ruediger Pluem Date: Wed, 16 Feb 2022 12:35:36 +0000 (+0000) Subject: * Change the logic to choose the maximum of both timeouts (front end socket, X-Git-Tag: 2.5.0-alpha2-ci-test-only~492 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d27a32da693bc1f48dd87073e18d43af14843b59;p=thirdparty%2Fapache%2Fhttpd.git * Change the logic to choose the maximum of both timeouts (front end socket, backend socket) instead of the minimum as backend timeouts can be configured more selectively (per worker if needed) as front end timeouts and typically the backend timeouts reflect the application requirements better. PR: 65886 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1898127 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/changes-entries/pr65886.txt b/changes-entries/pr65886.txt new file mode 100644 index 00000000000..8321ed41110 --- /dev/null +++ b/changes-entries/pr65886.txt @@ -0,0 +1,5 @@ + *) mod_proxy: Use the maxium of front end and backend timeouts instead of the + minimum when tunneling requests (websockets, CONNECT requests). + Backend timeouts can be configured more selectively (per worker if needed) + as front end timeouts and typically the backend timeouts reflect the + application requirements better. PR 65886 [Ruediger Pluem] diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c index 574ea65ca23..73567c22810 100644 --- a/modules/proxy/proxy_util.c +++ b/modules/proxy/proxy_util.c @@ -4801,10 +4801,10 @@ PROXY_DECLARE(apr_status_t) ap_proxy_tunnel_create(proxy_tunnel_rec **ptunnel, tunnel->origin->pfd->desc.s = ap_get_conn_socket(c_o); tunnel->origin->pfd->client_data = tunnel->origin; - /* Defaults to the smallest timeout of both connections */ + /* Defaults to the biggest timeout of both connections */ apr_socket_timeout_get(tunnel->client->pfd->desc.s, &timeout); apr_socket_timeout_get(tunnel->origin->pfd->desc.s, &tunnel->timeout); - if (timeout >= 0 && (tunnel->timeout < 0 || tunnel->timeout > timeout)) { + if (timeout >= 0 && (tunnel->timeout < 0 || tunnel->timeout < timeout)) { tunnel->timeout = timeout; }