This will make it possible to delegate argument validating to functions
shared with smp_fetch_*.
int (*match)(struct sample *smp, struct acl_pattern *pattern);
unsigned int requires; /* bit mask of all ACL_USE_* required to evaluate this keyword */
int arg_mask; /* mask describing up to 7 arg types */
+ int (*val_args)(struct arg *arg_p, char **err_msg); /* argument validation function */
/* must be after the config params */
int use_cnt;
};
NULL, NULL, NULL);
if (nbargs < 0)
goto out_free_expr;
+
+ if (aclkw->val_args && !aclkw->val_args(expr->args, NULL))
+ goto out_free_expr; /* invalid keyword argument */
}
else if (ARGM(aclkw->arg_mask) == 1) {
int type = (aclkw->arg_mask >> 4) & 15;