diff --git a/src/queue.c b/src/queue.c index 849bd52f3..1fa40ed34 100644 --- a/src/queue.c +++ b/src/queue.c @@ -105,11 +105,8 @@ unsigned int srv_dynamic_maxconn(const struct server *s) { unsigned int max; - if (s->proxy->beconn >= s->proxy->fullconn) - /* no fullconn or proxy is full */ - max = s->maxconn; - else if (s->minconn == s->maxconn) - /* static limit */ + if (s->minconn == s->maxconn || s->proxy->beconn >= s->proxy->fullconn) + /* static limit, or no fullconn or proxy is full */ max = s->maxconn; else max = MAX(s->minconn, s->proxy->beconn * s->maxconn / s->proxy->fullconn);