]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: server: Update healthcheck when server settings are changed via CLI
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 3 Sep 2025 14:36:25 +0000 (16:36 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 5 Sep 2025 13:56:42 +0000 (15:56 +0200)
not all changes are concerned. But when the SSL is enabled or disabled for a
server, the healthcheck xprt must be eventually be updated too. This happens
when the healthcheck relies on the server settings.

In the same spirit, when the healthcheck address and port are updated, we
must fallback on the raw xprt if the SSL is not explicitly enabled for the
healthcheck with a "check-ssl" parameter.

This patch should be backported to all stable versions.

src/server.c

index a41ffed16f7d58f00f2174b8648044de7ef929ba..441b7f8314456ed23842e05d03d0d261a4f4628e 100644 (file)
@@ -2779,6 +2779,9 @@ int srv_set_ssl(struct server *s, int use_ssl)
                }
                s->xprt = xprt_get(XPRT_RAW);
        }
+       /* Check if we must rely on the server XPRT for the health-check */
+       if (!s->check.port && !is_addr(&s->check.addr) && !s->check.use_ssl)
+               s->check.xprt = s->xprt;
 
        return 0;
 }
@@ -4601,6 +4604,10 @@ out:
                        s->check.addr = sk;
                if (port)
                        s->check.port = new_port;
+
+               /* Fallback to raw XPRT for the health-check */
+               if (!s->check.use_ssl)
+                       s->check.xprt = xprt_get(XPRT_RAW);
        }
        return NULL;
 }