diff --git a/src/haproxy.c b/src/haproxy.c index 21bfcbd97..22cd51e8b 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -1940,6 +1940,18 @@ static void init(int argc, char **argv) if (cfg_maxconn > 0) global.maxconn = cfg_maxconn; + if (global.stats_fe) + global.maxsock += global.stats_fe->maxconn; + + if (cfg_peers) { + /* peers also need to bypass global maxconn */ + struct peers *p = cfg_peers; + + for (p = cfg_peers; p; p = p->next) + if (p->peers_fe) + global.maxsock += p->peers_fe->maxconn; + } + if (cfg_pidfile) { free(global.pidfile); global.pidfile = strdup(cfg_pidfile); @@ -2098,18 +2110,6 @@ static void init(int argc, char **argv) global.maxsock += global.maxconn * sides * global.ssl_used_async_engines; } - if (global.stats_fe) - global.maxsock += global.stats_fe->maxconn; - - if (cfg_peers) { - /* peers also need to bypass global maxconn */ - struct peers *p = cfg_peers; - - for (p = cfg_peers; p; p = p->next) - if (p->peers_fe) - global.maxsock += p->peers_fe->maxconn; - } - proxy_adjust_all_maxconn(); if (global.tune.maxpollevents <= 0)