changeset 3075:9cb91ed5a110 HEAD

Added backlog parameter for net_listen*().
author Timo Sirainen <tss@iki.fi>
date Sun, 09 Jan 2005 18:51:03 +0200
parents 3feb38ff17f5
children 8d15fea729c2
files src/auth/main.c src/lib/network.c src/lib/network.h src/login-common/master.c src/master/auth-process.c src/master/main.c
diffstat 6 files changed, 13 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/main.c	Sun Jan 09 02:49:18 2005 +0200
+++ b/src/auth/main.c	Sun Jan 09 18:51:03 2005 +0200
@@ -79,7 +79,7 @@
 	return gr->gr_gid;
 }
 
-static int create_unix_listener(const char *env)
+static int create_unix_listener(const char *env, int backlog)
 {
 	const char *path, *mode, *user, *group;
 	mode_t old_umask;
@@ -103,7 +103,7 @@
 
 	old_umask = umask(mask);
 	for (i = 0; i < 5; i++) {
-		fd = net_listen_unix(path);
+		fd = net_listen_unix(path, backlog);
 		if (fd != -1)
 			break;
 
@@ -149,9 +149,9 @@
 		}
 
 		str = t_strdup_printf("AUTH_%u", i);
-		client_fd = create_unix_listener(str);
+		client_fd = create_unix_listener(str, 16);
 		str = t_strdup_printf("AUTH_%u_MASTER", i);
-		master_fd = create_unix_listener(str);
+		master_fd = create_unix_listener(str, 1);
 
 		master = auth_master_connection_create(auth, -1);
 		if (master_fd != -1) {
--- a/src/lib/network.c	Sun Jan 09 02:49:18 2005 +0200
+++ b/src/lib/network.c	Sun Jan 09 18:51:03 2005 +0200
@@ -9,8 +9,6 @@
 #include <sys/un.h>
 #include <netinet/tcp.h>
 
-#define LISTEN_BACKLOG 8
-
 union sockaddr_union {
 	struct sockaddr sa;
 	struct sockaddr_in sin;
@@ -241,7 +239,7 @@
 
 /* Listen for connections on a socket. if `my_ip' is NULL, listen in any
    address. */
-int net_listen(const struct ip_addr *my_ip, unsigned int *port)
+int net_listen(const struct ip_addr *my_ip, unsigned int *port, int backlog)
 {
 	union sockaddr_union so;
 	int ret, fd, opt = 1;
@@ -281,7 +279,7 @@
 			*port = sin_get_port(&so);
 
 			/* start listening */
-			if (listen(fd, LISTEN_BACKLOG) >= 0)
+			if (listen(fd, backlog) >= 0)
                                 return fd;
 		}
 
@@ -292,7 +290,7 @@
 	return -1;
 }
 
-int net_listen_unix(const char *path)
+int net_listen_unix(const char *path, int backlog)
 {
 	struct sockaddr_un sa;
 	int fd;
@@ -313,7 +311,7 @@
 	/* bind */
 	if (bind(fd, (struct sockaddr *) &sa, sizeof(sa)) == 0) {
 		/* start listening */
-		if (listen(fd, LISTEN_BACKLOG) == 0)
+		if (listen(fd, backlog) == 0)
 			return fd;
 	}
 
--- a/src/lib/network.h	Sun Jan 09 02:49:18 2005 +0200
+++ b/src/lib/network.h	Sun Jan 09 18:51:03 2005 +0200
@@ -62,9 +62,9 @@
 void net_get_ip_any6(struct ip_addr *ip);
 
 /* Listen for connections on a socket */
-int net_listen(const struct ip_addr *my_ip, unsigned int *port);
+int net_listen(const struct ip_addr *my_ip, unsigned int *port, int backlog);
 /* Listen for connections on an UNIX socket */
-int net_listen_unix(const char *path);
+int net_listen_unix(const char *path, int backlog);
 /* Accept a connection on a socket. Returns -1 for temporary failure,
    -2 for fatal failure */
 int net_accept(int fd, struct ip_addr *addr, unsigned int *port);
--- a/src/login-common/master.c	Sun Jan 09 02:49:18 2005 +0200
+++ b/src/login-common/master.c	Sun Jan 09 18:51:03 2005 +0200
@@ -175,7 +175,7 @@
 		}
 
 		/* need to create it */
-		fd = net_listen_unix(path);
+		fd = net_listen_unix(path, 16);
 		if (fd != -1) {
 			master_exec(fd);
 			fd = -1;
--- a/src/master/auth-process.c	Sun Jan 09 02:49:18 2005 +0200
+++ b/src/master/auth-process.c	Sun Jan 09 18:51:03 2005 +0200
@@ -371,7 +371,7 @@
 	(void)unlink(path);
 
 	old_umask = umask(0117); /* we want 0660 mode for the socket */
-	fd = net_listen_unix(path);
+	fd = net_listen_unix(path, 16);
 	umask(old_umask);
 
 	if (fd < 0)
--- a/src/master/main.c	Sun Jan 09 02:49:18 2005 +0200
+++ b/src/master/main.c	Sun Jan 09 18:51:03 2005 +0200
@@ -327,7 +327,7 @@
 			*fd = null_fd;
 		else {
 			for (i = 0; i < 10; i++) {
-				*fd = net_listen(ip, &port);
+				*fd = net_listen(ip, &port, 8);
 				if (*fd != -1 || errno != EADDRINUSE || !retry)
 					break;