From 3b65e148421be007ce867bed5f32cdd9d3a58d65 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 29 Mar 2022 15:03:09 +0200 Subject: [PATCH] MINOR: filters: extend flt_dump_kws() to dump to stdout When passing a NULL output buffer the function will now dump to stdout with a more compact format that is more suitable for machine processing. An entry was added to dump_registered_keyword() to call it when the keyword class "flt" is requested. --- src/filters.c | 19 +++++++++++-------- src/haproxy.c | 6 ++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/filters.c b/src/filters.c index 06ae788b9..4594098da 100644 --- a/src/filters.c +++ b/src/filters.c @@ -130,6 +130,7 @@ flt_find_kw(const char *kw) /* * Dumps all registered "filter" keywords to the string pointer. The * unsupported keywords are only dumped if their supported form was not found. + * If is NULL, the output is emitted using a more compact format on stdout. */ void flt_dump_kws(char **out) @@ -137,18 +138,20 @@ flt_dump_kws(char **out) struct flt_kw_list *kwl; int index; - if (!out) - return; - - *out = NULL; + if (out) + *out = NULL; list_for_each_entry(kwl, &flt_keywords.list, list) { for (index = 0; kwl->kw[index].kw != NULL; index++) { if (kwl->kw[index].parse || flt_find_kw(kwl->kw[index].kw) == &kwl->kw[index]) { - memprintf(out, "%s[%4s] %s%s\n", *out ? *out : "", - kwl->scope, - kwl->kw[index].kw, - kwl->kw[index].parse ? "" : " (not supported)"); + if (out) + memprintf(out, "%s[%4s] %s%s\n", *out ? *out : "", + kwl->scope, + kwl->kw[index].kw, + kwl->kw[index].parse ? "" : " (not supported)"); + else + printf("%s [%s]\n", + kwl->kw[index].kw, kwl->scope); } } } diff --git a/src/haproxy.c b/src/haproxy.c index b5f368d1e..6d28c52cd 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -1826,6 +1826,7 @@ static void dump_registered_keywords(void) printf("# List of supported keyword classes:\n"); printf("all: list all keywords\n"); printf("cfg: configuration keywords\n"); + printf("flt: filter names\n"); continue; } else if (strcmp(kwd_dump, "all") == 0) { @@ -1836,6 +1837,11 @@ static void dump_registered_keywords(void) printf("# List of registered configuration keywords:\n"); cfg_dump_registered_keywords(); } + + if (all || strcmp(kwd_dump, "flt") == 0) { + printf("# List of registered filter names:\n"); + flt_dump_kws(NULL); + } } }