changeset 5347:c9e8eaacef6d HEAD

If net_connect_unix() fails, assume also that ECONNREFUSED may be a temporary failure. It can happen if we exceeded the listener's backlog.
author Timo Sirainen <tss@iki.fi>
date Fri, 16 Mar 2007 17:23:53 +0200
parents e39ce58a463b
children 7ca3a28d3191
files src/auth/auth-worker-server.c src/lib-auth/auth-server-connection.c
diffstat 2 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-worker-server.c	Fri Mar 16 17:11:42 2007 +0200
+++ b/src/auth/auth-worker-server.c	Fri Mar 16 17:23:53 2007 +0200
@@ -58,8 +58,8 @@
 		if (fd >= 0)
 			break;
 
-		if (errno == EAGAIN) {
-			/* we're busy */
+		if (errno == EAGAIN || errno == ECONNREFUSED) {
+			/* we're busy. */
 		} else if (errno == ENOENT) {
 			/* master didn't yet create it? */
 		} else {
--- a/src/lib-auth/auth-server-connection.c	Fri Mar 16 17:11:42 2007 +0200
+++ b/src/lib-auth/auth-server-connection.c	Fri Mar 16 17:23:53 2007 +0200
@@ -203,7 +203,7 @@
 	/* max. 1 second wait here. */
 	for (try = 0; try < 10; try++) {
 		fd = net_connect_unix(path);
-		if (fd != -1 || errno != EAGAIN)
+		if (fd != -1 || (errno != EAGAIN && errno != ECONNREFUSED))
 			break;
 
 		/* busy. wait for a while. */