From: Willy Tarreau Date: Wed, 21 Dec 2016 19:13:11 +0000 (+0100) Subject: CLEANUP: filters: use the function registration to initialize all proxies X-Git-Tag: v1.8-dev1~233 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=64bca599d984be67949a199d01ddfefec96a57df;p=thirdparty%2Fhaproxy.git CLEANUP: filters: use the function registration to initialize all proxies Function flt_init() was called in the main init code path, now we move it to the list of initializers and we can unexport flt_init(). --- diff --git a/include/proto/filters.h b/include/proto/filters.h index 0cec1dc635..0d3e9acaaa 100644 --- a/include/proto/filters.h +++ b/include/proto/filters.h @@ -95,7 +95,6 @@ extern struct pool_head *pool2_filter; -int flt_init(struct proxy *p); void flt_deinit(struct proxy *p); int flt_check(struct proxy *p); diff --git a/src/filters.c b/src/filters.c index 91404a4848..14ea0f1f38 100644 --- a/src/filters.c +++ b/src/filters.c @@ -251,7 +251,7 @@ parse_filter(char **args, int section_type, struct proxy *curpx, * the configuration parsing. Filters can finish to fill their config. Returns * (ERR_ALERT|ERR_FATAL) if an error occurs, 0 otherwise. */ -int +static int flt_init(struct proxy *proxy) { struct flt_conf *fconf; @@ -263,6 +263,24 @@ flt_init(struct proxy *proxy) return 0; } +/* Calls flt_init() for all proxies, see above */ +static int +flt_init_all() +{ + struct proxy *px; + int err_code = 0; + + for (px = proxy; px; px = px->next) { + err_code |= flt_init(px); + if (err_code & (ERR_ABORT|ERR_FATAL)) { + Alert("Failed to initialize filters for proxy '%s'.\n", + px->id); + return err_code; + } + } + return 0; +} + /* * Calls 'check' callback for all filters attached to a proxy. This happens * after the configuration parsing but before filters initialization. Returns @@ -1078,6 +1096,7 @@ __filters_init(void) { pool2_filter = create_pool("filter", sizeof(struct filter), MEM_F_SHARED); cfg_register_keywords(&cfg_kws); + hap_register_post_check(flt_init_all); } __attribute__((destructor)) diff --git a/src/haproxy.c b/src/haproxy.c index 5d43cf3880..2337341547 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -936,15 +936,6 @@ static void init(int argc, char **argv) ha_wurfl_init(); #endif - for (px = proxy; px; px = px->next) { - err_code |= flt_init(px); - if (err_code & (ERR_ABORT|ERR_FATAL)) { - Alert("Failed to initialize filters for proxy '%s'.\n", - px->id); - exit(1); - } - } - list_for_each_entry(pcf, &post_check_list, list) { err_code |= pcf->fct(); if (err_code & (ERR_ABORT|ERR_FATAL))