MINOR: acl: add a val_args field to keywords
This will make it possible to delegate argument validating to functions
shared with smp_fetch_*.
diff --git a/include/types/acl.h b/include/types/acl.h
index cff3ae2..00dfa0c 100644
--- a/include/types/acl.h
+++ b/include/types/acl.h
@@ -235,6 +235,7 @@
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;
};
diff --git a/src/acl.c b/src/acl.c
index 8f76286..433a266 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -1271,6 +1271,9 @@
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;