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;