diff --git a/src/client.c b/src/client.c index 1dd318f5e..9498b138d 100644 --- a/src/client.c +++ b/src/client.c @@ -76,7 +76,7 @@ int event_accept(int fd) { int cfd; int max_accept = global.tune.maxaccept; - while (p->feconn < p->maxconn && max_accept--) { + while (p->feconn < p->maxconn && actconn < global.maxconn && max_accept--) { struct sockaddr_storage addr; socklen_t laddr = sizeof(addr); diff --git a/src/proto_uxst.c b/src/proto_uxst.c index b708689c1..76854f2d4 100644 --- a/src/proto_uxst.c +++ b/src/proto_uxst.c @@ -374,7 +374,7 @@ int uxst_event_accept(int fd) { else max_accept = -1; - while (max_accept--) { + while (actconn < global.maxconn && max_accept--) { struct sockaddr_storage addr; socklen_t laddr = sizeof(addr);