]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: vars: make the error message clearer on missing arguments for set-var
authorWilly Tarreau <w@1wt.eu>
Fri, 12 Mar 2021 10:53:19 +0000 (11:53 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 12 Mar 2021 13:13:20 +0000 (14:13 +0100)
The error message after "http-response set-var" isn't very clear:

  [ALERT] 070/115043 (30526) : parsing [/dev/stdin:2] : error detected in proxy 'f' while parsing 'http-response set-var' rule : invalid variable 'set-var'. Expects 'set-var(<var-name>)' or 'unset-var(<var-name>)'.

Let's change it to this instead:

  [ALERT] 070/115608 (30799) : parsing [/dev/stdin:2] : error detected in proxy 'f' while parsing 'http-response set-var' rule : invalid or incomplete action 'set-var'. Expects 'set-var(<var-name>)' or 'unset-var(<var-name>)'.

With a wrong action name, it also works better (it's handled as a prefix
due to the opening parenthesis):

  [ALERT] 070/115608 (30799) : parsing [/dev/stdin:2] : error detected in proxy 'f' while parsing 'http-response set-varxxx' rule : invalid or incomplete action 'set-varxxx'. Expects 'set-var(<var-name>)' or 'unset-var(<var-name>)'.

src/vars.c

index 65930c984e8945aff5d08d556a63201fe055aec0..3390d240cb61c0e9f00abcfb4773b4db47e58b16 100644 (file)
@@ -737,7 +737,7 @@ static enum act_parse_ret parse_store(const char **args, int *arg, struct proxy
        }
 
        if (*var_name != '(') {
-               memprintf(err, "invalid variable '%s'. Expects 'set-var(<var-name>)' or 'unset-var(<var-name>)'",
+               memprintf(err, "invalid or incomplete action '%s'. Expects 'set-var(<var-name>)' or 'unset-var(<var-name>)'",
                          args[*arg-1]);
                return ACT_RET_PRS_ERR;
        }
@@ -745,7 +745,7 @@ static enum act_parse_ret parse_store(const char **args, int *arg, struct proxy
        var_len = strlen(var_name);
        var_len--; /* remove the ')' */
        if (var_name[var_len] != ')') {
-               memprintf(err, "invalid variable '%s'. Expects 'set-var(<var-name>)' or 'unset-var(<var-name>)'",
+               memprintf(err, "incomplete expression after action '%s'. Expects 'set-var(<var-name>)' or 'unset-var(<var-name>)'",
                          args[*arg-1]);
                return ACT_RET_PRS_ERR;
        }