diff --git a/include/haproxy/cfgparse.h b/include/haproxy/cfgparse.h index ecb5ffd1e..a1476fad6 100644 --- a/include/haproxy/cfgparse.h +++ b/include/haproxy/cfgparse.h @@ -93,7 +93,6 @@ int cfg_parse_track_sc_num(unsigned int *track_sc_num, int readcfgfile(const char *file); void cfg_register_keywords(struct cfg_kw_list *kwl); void cfg_unregister_keywords(struct cfg_kw_list *kwl); -void init_default_instance(); int check_config_validity(); int str2listener(char *str, struct proxy *curproxy, struct bind_conf *bind_conf, const char *file, int line, char **err); int str2receiver(char *str, struct proxy *curproxy, struct bind_conf *bind_conf, const char *file, int line, char **err); diff --git a/include/haproxy/proxy.h b/include/haproxy/proxy.h index f63f4a2cd..dfaf9962f 100644 --- a/include/haproxy/proxy.h +++ b/include/haproxy/proxy.h @@ -56,6 +56,7 @@ struct proxy *proxy_find_best_match(int cap, const char *name, int id, int *diff struct server *findserver(const struct proxy *px, const char *name); int proxy_cfg_ensure_no_http(struct proxy *curproxy); void init_new_proxy(struct proxy *p); +void proxy_preset_defaults(struct proxy *defproxy); int get_backend_server(const char *bk_name, const char *sv_name, struct proxy **bk, struct server **sv); void proxy_capture_error(struct proxy *proxy, int is_back, diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c index 80b845a71..cdc3f5bf4 100644 --- a/src/cfgparse-listen.c +++ b/src/cfgparse-listen.c @@ -526,7 +526,8 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) deinit_proxy_tcpcheck(&defproxy); /* we cannot free uri_auth because it might already be used */ - init_default_instance(); + init_new_proxy(&defproxy); + proxy_preset_defaults(&defproxy); curproxy = &defproxy; curproxy->conf.args.file = curproxy->conf.file = strdup(file); curproxy->conf.args.line = curproxy->conf.line = linenum; diff --git a/src/cfgparse.c b/src/cfgparse.c index 03405a40c..9f76878f0 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -422,48 +422,6 @@ unsigned long parse_cpu_set(const char **args, unsigned long *cpu_set, char **er } #endif -void init_default_instance() -{ - init_new_proxy(&defproxy); - defproxy.mode = PR_MODE_TCP; - defproxy.disabled = 0; - defproxy.maxconn = cfg_maxpconn; - defproxy.conn_retries = CONN_RETRIES; - defproxy.redispatch_after = 0; - defproxy.options = PR_O_REUSE_SAFE; - defproxy.max_out_conns = MAX_SRV_LIST; - - defproxy.defsrv.check.inter = DEF_CHKINTR; - defproxy.defsrv.check.fastinter = 0; - defproxy.defsrv.check.downinter = 0; - defproxy.defsrv.agent.inter = DEF_CHKINTR; - defproxy.defsrv.agent.fastinter = 0; - defproxy.defsrv.agent.downinter = 0; - defproxy.defsrv.check.rise = DEF_RISETIME; - defproxy.defsrv.check.fall = DEF_FALLTIME; - defproxy.defsrv.agent.rise = DEF_AGENT_RISETIME; - defproxy.defsrv.agent.fall = DEF_AGENT_FALLTIME; - defproxy.defsrv.check.port = 0; - defproxy.defsrv.agent.port = 0; - defproxy.defsrv.maxqueue = 0; - defproxy.defsrv.minconn = 0; - defproxy.defsrv.maxconn = 0; - defproxy.defsrv.max_reuse = -1; - defproxy.defsrv.max_idle_conns = -1; - defproxy.defsrv.pool_purge_delay = 5000; - defproxy.defsrv.slowstart = 0; - defproxy.defsrv.onerror = DEF_HANA_ONERR; - defproxy.defsrv.consecutive_errors_limit = DEF_HANA_ERRLIMIT; - defproxy.defsrv.uweight = defproxy.defsrv.iweight = 1; - - defproxy.email_alert.level = LOG_ALERT; - defproxy.load_server_state_from_file = PR_SRV_STATE_FILE_UNSPEC; -#if defined(USE_QUIC) - quic_transport_params_init(&defproxy.defsrv.quic_params, 0); -#endif - -} - /* Allocate and initialize the frontend of a "peers" section found in * file at line with as ID. * Return 0 if succeeded, -1 if not. diff --git a/src/haproxy.c b/src/haproxy.c index 417266679..1bac1c51f 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -1822,7 +1822,8 @@ static void init(int argc, char **argv) global.maxsock = 10; /* reserve 10 fds ; will be incremented by socket eaters */ - init_default_instance(); + init_new_proxy(&defproxy); + proxy_preset_defaults(&defproxy); /* in wait mode, we don't try to read the configuration files */ if (!(global.mode & MODE_MWORKER_WAIT)) { diff --git a/src/proxy.c b/src/proxy.c index f06b5d537..009ebbc12 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -1051,6 +1051,47 @@ void init_new_proxy(struct proxy *p) HA_RWLOCK_INIT(&p->lock); } +/* Preset default settings onto proxy . */ +void proxy_preset_defaults(struct proxy *defproxy) +{ + defproxy->mode = PR_MODE_TCP; + defproxy->disabled = 0; + defproxy->maxconn = cfg_maxpconn; + defproxy->conn_retries = CONN_RETRIES; + defproxy->redispatch_after = 0; + defproxy->options = PR_O_REUSE_SAFE; + defproxy->max_out_conns = MAX_SRV_LIST; + + defproxy->defsrv.check.inter = DEF_CHKINTR; + defproxy->defsrv.check.fastinter = 0; + defproxy->defsrv.check.downinter = 0; + defproxy->defsrv.agent.inter = DEF_CHKINTR; + defproxy->defsrv.agent.fastinter = 0; + defproxy->defsrv.agent.downinter = 0; + defproxy->defsrv.check.rise = DEF_RISETIME; + defproxy->defsrv.check.fall = DEF_FALLTIME; + defproxy->defsrv.agent.rise = DEF_AGENT_RISETIME; + defproxy->defsrv.agent.fall = DEF_AGENT_FALLTIME; + defproxy->defsrv.check.port = 0; + defproxy->defsrv.agent.port = 0; + defproxy->defsrv.maxqueue = 0; + defproxy->defsrv.minconn = 0; + defproxy->defsrv.maxconn = 0; + defproxy->defsrv.max_reuse = -1; + defproxy->defsrv.max_idle_conns = -1; + defproxy->defsrv.pool_purge_delay = 5000; + defproxy->defsrv.slowstart = 0; + defproxy->defsrv.onerror = DEF_HANA_ONERR; + defproxy->defsrv.consecutive_errors_limit = DEF_HANA_ERRLIMIT; + defproxy->defsrv.uweight = defproxy->defsrv.iweight = 1; + + defproxy->email_alert.level = LOG_ALERT; + defproxy->load_server_state_from_file = PR_SRV_STATE_FILE_UNSPEC; +#if defined(USE_QUIC) + quic_transport_params_init(&defproxy->defsrv.quic_params, 0); +#endif +} + /* to be called under the proxy lock after stopping some listeners. This will * automatically update the p->disabled flag after stopping the last one, and * will emit a log indicating the proxy's condition. The function is idempotent diff --git a/src/server.c b/src/server.c index e13c0df7d..a77579abe 100644 --- a/src/server.c +++ b/src/server.c @@ -1784,7 +1784,7 @@ struct server *new_server(struct proxy *proxy) #endif /* please don't put default server settings here, they are set in - * init_default_instance(). + * proxy_preset_defaults(). */ return srv; }