From d27a32da693bc1f48dd87073e18d43af14843b59 Mon Sep 17 00:00:00 2001 From: Ruediger Pluem Date: Wed, 16 Feb 2022 12:35:36 +0000 Subject: [PATCH] * 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 --- changes-entries/pr65886.txt | 5 +++++ modules/proxy/proxy_util.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 changes-entries/pr65886.txt 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; } -- 2.47.2