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().
This commit is contained in:
Willy Tarreau 2016-12-21 20:13:11 +01:00
parent 865c5148e6
commit 64bca599d9
3 changed files with 20 additions and 11 deletions

View File

@ -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);

View File

@ -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))

View File

@ -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))