BUG/MINOR: ext-check: cannot use without preserve-env

Since 1de44da ("MINOR: ext-check: add an option to preserve environment
variables"), it is now possible to provide an extra argument to
"external-check" directive. This allows to support the "preserve-env"
option which differs from the default behavior.

However a mistake was made, because the config parser doesn't allow the
default configuration anymore: using external-check without argument will
trigger an error:
  'external-check' only supports 'preserve-env' as an argument, found ''.

This is due to as small mistake in the code that make the check
systematically report an error if the first argument is not equal to
"preserve-env". The check was modified so that the error is only reported
if the argument is provided, so that the default behavior is restored.

This should fix GH #2380 and should be backported on 2.9 and potentially
further (anywhere 1de44da is, because a note about an optional backport
up to the 2.6 was left in the original commit message)
This commit is contained in:
Aurelien DARRAGON 2023-12-07 09:58:27 +01:00 committed by Christopher Faulet
parent d7964c52ce
commit 63282f3bfb

View File

@ -591,7 +591,7 @@ int cfg_parse_global(const char *file, int linenum, char **args, int kwm)
global.external_check = 1;
if (strcmp(args[1], "preserve-env") == 0) {
global.external_check = 2;
} else {
} else if (*args[1]) {
ha_alert("parsing [%s:%d] : '%s' only supports 'preserve-env' as an argument, found '%s'.\n", file, linenum, args[0], args[1]);
err_code |= ERR_ALERT | ERR_FATAL;
goto out;