The do-log action does not accept argument for now. But an error was
triggered if any extra arguments was found, preventing the use of if/unless
conditionnals.
When an action is parsed, expected arguments must be tested to detect
missing ones but not unexpected extra arguments because this should be
performed by the conditionnal parser. So just removing the test in the
do-log parser function is enough to fix the issue.
This patch must be backported to 3.1.
const char **args, int *orig_arg, struct proxy *px,
struct act_rule *rule, char **err)
{
- if (*args[*orig_arg]) {
- memprintf(err, "doesn't expects any argument");
- return ACT_RET_PRS_ERR;
- }
-
rule->action_ptr = do_log_action;
rule->action = ACT_CUSTOM;
rule->release_ptr = NULL;