Mercurial > dovecot > core-2.2
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);