Mercurial > dovecot > core-2.2
changeset 20803:0bddf1154654
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.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 27 Sep 2016 15:50:11 +0300 |
parents | 61a009de2cff |
children | 5332b9d8315c |
files | src/master/service-listen.c |
diffstat | 1 files changed, 3 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/master/service-listen.c Mon Sep 26 15:38:27 2016 +0300 +++ b/src/master/service-listen.c Tue Sep 27 15:50:11 2016 +0300 @@ -18,7 +18,6 @@ #include <sys/socket.h> #define MIN_BACKLOG 4 -#define MAX_BACKLOG 511 static unsigned int service_get_backlog(struct service *service) { @@ -28,14 +27,10 @@ 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); }