mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-04-04 02:21:53 +02:00
BUG/MINOR: http_act: Make set/add-headers-bin compatible with ACL conditions
An error is erroneously triggered if a if/unless statement is found after set-headers-bin and add-headers-bin actions. To make it works, during parsing of these actions, we should leave when an unknown argument is found to let the rule parser the opportunity to parse an if/unless statement. No backport needed.
This commit is contained in:
parent
6a862009be
commit
e4b8531d5a
@ -1712,22 +1712,14 @@ static enum act_parse_ret parse_http_set_headers_bin(const char **args, int *ori
|
||||
return ACT_RET_PRS_ERR;
|
||||
}
|
||||
|
||||
cur_arg++;
|
||||
|
||||
/* Check if an argument is available */
|
||||
if (*args[cur_arg]) {
|
||||
if (strcmp(args[cur_arg], "prefix") == 0 ) {
|
||||
if(!*args[cur_arg+1]) {
|
||||
memprintf(err, "expects 1 argument: <headers>; or 3 arguments: <headers> prefix <pfx>");
|
||||
return ACT_RET_PRS_ERR;
|
||||
} else {
|
||||
cur_arg++;
|
||||
rule->arg.http.str = ist(strdup(args[cur_arg]));
|
||||
}
|
||||
} else {
|
||||
if (*args[cur_arg+1] && strcmp(args[cur_arg+1], "prefix") == 0 ) {
|
||||
if(!*args[cur_arg+2]) {
|
||||
memprintf(err, "expects 1 argument: <headers>; or 3 arguments: <headers> prefix <pfx>");
|
||||
return ACT_RET_PRS_ERR;
|
||||
}
|
||||
cur_arg += 2;
|
||||
rule->arg.http.str = ist(strdup(args[cur_arg]));
|
||||
}
|
||||
|
||||
*orig_arg = cur_arg + 1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user