mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-10 17:17:06 +02:00
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:
parent
865c5148e6
commit
64bca599d9
@ -95,7 +95,6 @@
|
|||||||
|
|
||||||
extern struct pool_head *pool2_filter;
|
extern struct pool_head *pool2_filter;
|
||||||
|
|
||||||
int flt_init(struct proxy *p);
|
|
||||||
void flt_deinit(struct proxy *p);
|
void flt_deinit(struct proxy *p);
|
||||||
int flt_check(struct proxy *p);
|
int flt_check(struct proxy *p);
|
||||||
|
|
||||||
|
@ -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
|
* the configuration parsing. Filters can finish to fill their config. Returns
|
||||||
* (ERR_ALERT|ERR_FATAL) if an error occurs, 0 otherwise.
|
* (ERR_ALERT|ERR_FATAL) if an error occurs, 0 otherwise.
|
||||||
*/
|
*/
|
||||||
int
|
static int
|
||||||
flt_init(struct proxy *proxy)
|
flt_init(struct proxy *proxy)
|
||||||
{
|
{
|
||||||
struct flt_conf *fconf;
|
struct flt_conf *fconf;
|
||||||
@ -263,6 +263,24 @@ flt_init(struct proxy *proxy)
|
|||||||
return 0;
|
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
|
* Calls 'check' callback for all filters attached to a proxy. This happens
|
||||||
* after the configuration parsing but before filters initialization. Returns
|
* 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);
|
pool2_filter = create_pool("filter", sizeof(struct filter), MEM_F_SHARED);
|
||||||
cfg_register_keywords(&cfg_kws);
|
cfg_register_keywords(&cfg_kws);
|
||||||
|
hap_register_post_check(flt_init_all);
|
||||||
}
|
}
|
||||||
|
|
||||||
__attribute__((destructor))
|
__attribute__((destructor))
|
||||||
|
@ -936,15 +936,6 @@ static void init(int argc, char **argv)
|
|||||||
ha_wurfl_init();
|
ha_wurfl_init();
|
||||||
#endif
|
#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) {
|
list_for_each_entry(pcf, &post_check_list, list) {
|
||||||
err_code |= pcf->fct();
|
err_code |= pcf->fct();
|
||||||
if (err_code & (ERR_ABORT|ERR_FATAL))
|
if (err_code & (ERR_ABORT|ERR_FATAL))
|
||||||
|
Loading…
Reference in New Issue
Block a user