diff --git a/src/server.c b/src/server.c index a41ffed16..441b7f831 100644 --- a/src/server.c +++ b/src/server.c @@ -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; }