From: Timo Sirainen Date: Tue, 27 Sep 2016 12:50:11 +0000 (+0300) Subject: master: Removed hardcoded listen() backlog limit. X-Git-Tag: 2.3.0.rc1~2977 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f6f50f528f6dce764065780bf88ee1acb2422b0a;p=thirdparty%2Fdovecot%2Fcore.git master: Removed hardcoded listen() backlog limit. If it's already too large, the kernel will truncate it automatically. So there shouldn't be any reason for us to explicitly limit it. --- diff --git a/src/master/service-listen.c b/src/master/service-listen.c index a98d7cb225..d46e08ff54 100644 --- a/src/master/service-listen.c +++ b/src/master/service-listen.c @@ -18,7 +18,6 @@ #include #define MIN_BACKLOG 4 -#define MAX_BACKLOG 511 static unsigned int service_get_backlog(struct service *service) { @@ -28,14 +27,10 @@ static unsigned int service_get_backlog(struct service *service) i_assert(service->client_limit > 0); /* as unlikely as it is, avoid overflows */ - if (service->process_limit > MAX_BACKLOG || - service->client_limit > MAX_BACKLOG) - backlog = MAX_BACKLOG; - else { + if (service->client_limit > INT_MAX / service->process_limit) + backlog = INT_MAX; + else backlog = service->process_limit * service->client_limit; - if (backlog > MAX_BACKLOG) - backlog = MAX_BACKLOG; - } return I_MAX(backlog, MIN_BACKLOG); }