diff --git a/changes-entries/pr65886.txt b/changes-entries/pr65886.txt new file mode 100644 index 0000000000..8321ed4111 --- /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 574ea65ca2..73567c2281 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; }