MINOR: init: report the list of optionally available services

It's never easy to guess what services are built in. We currently have
the prometheus exporter in contrib/ which is the only extension for now.
Let's enumerate all available ones just like we do for filterr and pollers.
This commit is contained in:
Willy Tarreau 2019-03-19 08:08:10 +01:00
parent 9b6be3bbeb
commit 679bba13f7
3 changed files with 22 additions and 0 deletions

View File

@ -348,6 +348,7 @@ static void inline stream_init_srv_conn(struct stream *sess)
} }
void service_keywords_register(struct action_kw_list *kw_list); void service_keywords_register(struct action_kw_list *kw_list);
void list_services(FILE *out);
#endif /* _PROTO_STREAM_H */ #endif /* _PROTO_STREAM_H */

View File

@ -412,6 +412,8 @@ static void display_build_opts()
putchar('\n'); putchar('\n');
list_mux_proto(stdout); list_mux_proto(stdout);
putchar('\n'); putchar('\n');
list_services(stdout);
putchar('\n');
list_filters(stdout); list_filters(stdout);
putchar('\n'); putchar('\n');
} }

View File

@ -2795,6 +2795,25 @@ void service_keywords_register(struct action_kw_list *kw_list)
LIST_ADDQ(&service_keywords, &kw_list->list); LIST_ADDQ(&service_keywords, &kw_list->list);
} }
/* Lists the known services on <out> */
void list_services(FILE *out)
{
struct action_kw_list *kw_list;
int found = 0;
int i;
fprintf(out, "Available services :");
list_for_each_entry(kw_list, &service_keywords, list) {
for (i = 0; kw_list->kw[i].kw != NULL; i++) {
if (!found)
fputc('\n', out);
found = 1;
fprintf(out, "\t%s\n", kw_list->kw[i].kw);
}
}
if (!found)
fprintf(out, " none\n");
}
/* This function dumps a complete stream state onto the stream interface's /* This function dumps a complete stream state onto the stream interface's
* read buffer. The stream has to be set in strm. It returns 0 if the output * read buffer. The stream has to be set in strm. It returns 0 if the output