changeset 13293:076a71f9a154

lib-master: Don't count FIFOs as clients anymore. We never see them disconnected. This fixes a problem with shutdown_clients=no when a closed director process could hang around forever waiting for the FIFO to close.
author Timo Sirainen <tss@iki.fi>
date Fri, 26 Aug 2011 05:10:54 +0300
parents 78f9f28b5d24
children c51fbe64eae1
files src/director/notify-connection.c src/lib-master/master-service.c src/log/log-connection.c
diffstat 3 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/notify-connection.c	Fri Aug 26 05:09:25 2011 +0300
+++ b/src/director/notify-connection.c	Fri Aug 26 05:10:54 2011 +0300
@@ -65,6 +65,4 @@
 	if (close(conn->fd) < 0)
 		i_error("close(notify connection) failed: %m");
 	i_free(conn);
-
-	master_service_client_connection_destroyed(master_service);
 }
--- a/src/lib-master/master-service.c	Fri Aug 26 05:09:25 2011 +0300
+++ b/src/lib-master/master-service.c	Fri Aug 26 05:10:54 2011 +0300
@@ -760,6 +760,11 @@
 			i_error("close(service connection) failed: %m");
 		master_service_client_connection_destroyed(service);
 	}
+	if (conn.fifo) {
+		/* reading FIFOs stays open forever, don't count them
+		   as real clients */
+		master_service_client_connection_destroyed(service);
+	}
 }
 
 static void io_listeners_init(struct master_service *service)
--- a/src/log/log-connection.c	Fri Aug 26 05:09:25 2011 +0300
+++ b/src/log/log-connection.c	Fri Aug 26 05:10:54 2011 +0300
@@ -282,8 +282,6 @@
 		i_error("close(log connection fd) failed: %m");
 	i_free(log->default_prefix);
 	i_free(log);
-
-        master_service_client_connection_destroyed(master_service);
 }
 
 void log_connections_init(void)