From: Amaury Denoyelle Date: Tue, 21 Sep 2021 08:29:09 +0000 (+0200) Subject: BUG/MINOR: server: allow 'enable health' only if check configured X-Git-Tag: v2.5-dev8~164 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0f456d502963f3555552d4b3d5f97ed504353d85;p=thirdparty%2Fhaproxy.git BUG/MINOR: server: allow 'enable health' only if check configured Test that checks have been configured on the server before enabling via the 'enable health' CLI. This mirrors the 'enable agent' command. Without this, a user can use the command on the server without checks. This leaves the server in an undefined state. Notably, the stat page reports the server in check transition. This condition was left on the following reorg commit. 2c04eda8b58636ad2ae44e42b1f50f3b5a24a642 REORG: cli: move "{enable|disable} health" to server.c This should be backported up to 1.8. --- diff --git a/src/server.c b/src/server.c index 8f92a25273..659805e123 100644 --- a/src/server.c +++ b/src/server.c @@ -4371,6 +4371,9 @@ static int cli_parse_enable_health(char **args, char *payload, struct appctx *ap if (!sv) return 1; + if (!(sv->check.state & CHK_ST_CONFIGURED)) + return cli_err(appctx, "Health check was not configured on this server, cannot enable.\n"); + HA_SPIN_LOCK(SERVER_LOCK, &sv->lock); sv->check.state |= CHK_ST_ENABLED; HA_SPIN_UNLOCK(SERVER_LOCK, &sv->lock);