]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
mod_proxy_hcheck: Honor worker timeout settings.
authorYann Ylavic <ylavic@apache.org>
Sun, 16 May 2021 17:04:55 +0000 (17:04 +0000)
committerYann Ylavic <ylavic@apache.org>
Sun, 16 May 2021 17:04:55 +0000 (17:04 +0000)
Daniel reported on user@ that hc connections do not timeout according to
the worker's tumeout= configuration, this fixes it.

While at it, copy the other timeout settings too.

Reported by: dferradal

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1889936 13f79535-47bb-0310-9956-ffa450edef68

changes-entries/hc_timeouts.txt [new file with mode: 0644]
modules/proxy/mod_proxy_hcheck.c

diff --git a/changes-entries/hc_timeouts.txt b/changes-entries/hc_timeouts.txt
new file mode 100644 (file)
index 0000000..50992bf
--- /dev/null
@@ -0,0 +1 @@
+  *) mod_proxy_hcheck: Honor worker timeout settings.  [Yann Ylavic]
\ No newline at end of file
index b78147beeddc3c81218ef35e81b81675f826c0f0..4d91669ba97a5c58472936fc65ee6e903df02dd2 100644 (file)
@@ -491,10 +491,12 @@ static proxy_worker *hc_get_hcworker(sctx_t *ctx, proxy_worker *worker,
         hc->hash.def = hc->s->hash.def = ap_proxy_hashfunc(hc->s->name, PROXY_HASHFUNC_DEFAULT);
         hc->hash.fnv = hc->s->hash.fnv = ap_proxy_hashfunc(hc->s->name, PROXY_HASHFUNC_FNV);
         hc->s->port = port;
-        if (worker->s->conn_timeout_set) {
-            hc->s->conn_timeout_set = worker->s->conn_timeout_set;
-            hc->s->conn_timeout = worker->s->conn_timeout;
-        }
+        hc->s->conn_timeout_set = worker->s->conn_timeout_set;
+        hc->s->conn_timeout = worker->s->conn_timeout;
+        hc->s->ping_timeout_set = worker->s->ping_timeout_set;
+        hc->s->ping_timeout = worker->s->ping_timeout;
+        hc->s->timeout_set = worker->s->timeout_set;
+        hc->s->timeout = worker->s->timeout;
         /* Do not disable worker in case of errors */
         hc->s->status |= PROXY_WORKER_IGNORE_ERRORS;
         /* Mark as the "generic" worker */