changeset 5358:a977ad033903 HEAD

net_listen_unix() API changed a bit. -1 is now returned for errors that can be ignored (remote closed the socket) and -2 for everything else.
author Timo Sirainen <tss@iki.fi>
date Sun, 18 Mar 2007 04:00:59 +0200
parents ac0ef8053692
children e724f1e61592
files src/auth/auth-master-listener.c src/dict/dict-server.c src/lib/network.c src/lib/network.h src/login-common/main.c src/master/auth-process.c src/master/login-process.c
diffstat 7 files changed, 11 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-master-listener.c	Sun Mar 18 03:57:32 2007 +0200
+++ b/src/auth/auth-master-listener.c	Sun Mar 18 04:00:59 2007 +0200
@@ -95,7 +95,7 @@
 	fd = net_accept(s->fd, NULL, NULL);
 	if (fd < 0) {
 		if (fd < -1)
-			i_fatal("accept(type %d) failed: %m", s->type);
+			i_error("accept(type %d) failed: %m", s->type);
 	} else {
 		net_set_nonblock(fd, TRUE);
 
--- a/src/dict/dict-server.c	Sun Mar 18 03:57:32 2007 +0200
+++ b/src/dict/dict-server.c	Sun Mar 18 04:00:59 2007 +0200
@@ -460,7 +460,7 @@
 	fd = net_accept(server->fd, NULL, NULL);
 	if (fd < 0) {
 		if (fd < -1)
-			i_fatal("accept(%s) failed: %m", server->path);
+			i_error("accept(%s) failed: %m", server->path);
 	} else {
 		net_set_nonblock(fd, TRUE);
 		dict_client_connection_init(server, fd);
--- a/src/lib/network.c	Sun Mar 18 03:57:32 2007 +0200
+++ b/src/lib/network.c	Sun Mar 18 04:00:59 2007 +0200
@@ -347,11 +347,10 @@
 	ret = accept(fd, &so.sa, &addrlen);
 
 	if (ret < 0) {
-		if (errno == EBADF || errno == ENOTSOCK ||
-		    errno == EOPNOTSUPP || errno == EFAULT || errno == EINVAL)
+		if (errno == EAGAIN || errno == ECONNABORTED)
+			return -1;
+		else
 			return -2;
-		else
-			return -1;
 	}
 
 	if (addr != NULL) sin_get_ip(&so, addr);
--- a/src/lib/network.h	Sun Mar 18 03:57:32 2007 +0200
+++ b/src/lib/network.h	Sun Mar 18 04:00:59 2007 +0200
@@ -65,8 +65,8 @@
 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 backlog);
-/* Accept a connection on a socket. Returns -1 for temporary failure,
-   -2 for fatal failure */
+/* Accept a connection on a socket. Returns -1 if the connection got closed,
+   -2 for other failures */
 int net_accept(int fd, struct ip_addr *addr, unsigned int *port);
 
 /* Read data from socket, return number of bytes read,
--- a/src/login-common/main.c	Sun Mar 18 03:57:32 2007 +0200
+++ b/src/login-common/main.c	Sun Mar 18 04:00:59 2007 +0200
@@ -73,7 +73,7 @@
 	fd = net_accept(LOGIN_LISTEN_FD, &remote_ip, &remote_port);
 	if (fd < 0) {
 		if (fd < -1)
-			i_fatal("accept() failed: %m");
+			i_error("accept() failed: %m");
 		return;
 	}
 
@@ -103,7 +103,7 @@
 	fd = net_accept(LOGIN_SSL_LISTEN_FD, &remote_ip, &remote_port);
 	if (fd < 0) {
 		if (fd < -1)
-			i_fatal("accept() failed: %m");
+			i_error("accept() failed: %m");
 		return;
 	}
 
--- a/src/master/auth-process.c	Sun Mar 18 03:57:32 2007 +0200
+++ b/src/master/auth-process.c	Sun Mar 18 04:00:59 2007 +0200
@@ -266,7 +266,7 @@
 	fd = net_accept(p->worker_listen_fd, NULL, NULL);
 	if (fd < 0) {
 		if (fd == -2)
-			i_fatal("net_accept(worker) failed: %m");
+			i_error("accept(worker) failed: %m");
 		return;
 	}
 
--- a/src/master/login-process.c	Sun Mar 18 03:57:32 2007 +0200
+++ b/src/master/login-process.c	Sun Mar 18 04:00:59 2007 +0200
@@ -869,7 +869,7 @@
 	fd = net_accept(inetd_login_fd, NULL, NULL);
 	if (fd < 0) {
 		if (fd < -1)
-			i_fatal("accept(inetd_login_fd) failed: %m");
+			i_error("accept(inetd_login_fd) failed: %m");
 	} else {
 		net_set_nonblock(fd, TRUE);
 		fd_close_on_exec(fd, TRUE);