dovecot-2.0: master: Increased listen backlog for services witho...

dovecot at dovecot.org dovecot at dovecot.org
Sat Mar 27 06:54:53 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/96496e1d3d12
changeset: 11013:96496e1d3d12
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Mar 27 06:54:51 2010 +0200
description:
master: Increased listen backlog for services without many processes.

diffstat:

 src/master/service-listen.c |  8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diffs (27 lines):

diff -r 84ffb38839b9 -r 96496e1d3d12 src/master/service-listen.c
--- a/src/master/service-listen.c	Sat Mar 27 03:08:26 2010 +0000
+++ b/src/master/service-listen.c	Sat Mar 27 06:54:51 2010 +0200
@@ -12,16 +12,22 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 
+#define MAX_BACKLOG 128
+
 static int service_unix_listener_listen(struct service_listener *l)
 {
         struct service *service = l->service;
 	const struct file_listener_settings *set = l->set.fileset.set;
 	mode_t old_umask;
+	unsigned int backlog;
 	int fd, i;
 
 	old_umask = umask((set->mode ^ 0777) & 0777);
 	for (i = 0;; i++) {
-		fd = net_listen_unix(set->path, service->process_limit);
+		backlog = service->process_limit * service->client_limit;
+		if (backlog > MAX_BACKLOG)
+			backlog = MAX_BACKLOG;
+		fd = net_listen_unix(set->path, backlog);
 		if (fd != -1)
 			break;
 


More information about the dovecot-cvs mailing list