MINOR: acl: add a function to dump the list of known ACL keywords
New function acl_dump_kwd() dumps the registered ACL keywords and their
sample-fetch equivalent to stdout. It's called by dump_registered_keywords()
for keyword class "acl".
diff --git a/include/haproxy/acl.h b/include/haproxy/acl.h
index ab96d19..07a2315 100644
--- a/include/haproxy/acl.h
+++ b/include/haproxy/acl.h
@@ -146,6 +146,8 @@
*/
int init_acl(void);
+void acl_dump_kwd(void);
+
void free_acl_cond(struct acl_cond *cond);
#endif /* _HAPROXY_ACL_H */
diff --git a/src/acl.c b/src/acl.c
index 480dd11..77d6717 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -1308,6 +1308,24 @@
return err;
}
+/* dump known ACL keywords on stdout */
+void acl_dump_kwd(void)
+{
+ struct acl_kw_list *kwl;
+ const char *name;
+ int index;
+
+ list_for_each_entry(kwl, &acl_keywords.list, list) {
+ for (index = 0; kwl->kw[index].kw != NULL; index++) {
+ name = kwl->kw[index].fetch_kw;
+ if (!name)
+ name = kwl->kw[index].kw;
+
+ printf("%s = %s -m %s\n", kwl->kw[index].kw, name, pat_match_names[kwl->kw[index].match_type]);
+ }
+ }
+}
+
void free_acl_cond(struct acl_cond *cond)
{
struct acl_term_suite *suite, *suiteb;
diff --git a/src/haproxy.c b/src/haproxy.c
index 16fafc3..72c065e 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -1825,6 +1825,7 @@
if (strcmp(kwd_dump, "help") == 0) {
printf("# List of supported keyword classes:\n");
printf("all: list all keywords\n");
+ printf("acl: ACL keywords\n");
printf("cfg: configuration keywords\n");
printf("cli: CLI keywords\n");
printf("flt: filter names\n");
@@ -1835,6 +1836,11 @@
all = 1;
}
+ if (all || strcmp(kwd_dump, "acl") == 0) {
+ printf("# List of registered ACL keywords:\n");
+ acl_dump_kwd();
+ }
+
if (all || strcmp(kwd_dump, "cfg") == 0) {
printf("# List of registered configuration keywords:\n");
cfg_dump_registered_keywords();