]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Don't count FIFOs as clients anymore. We never see them disconnected.
authorTimo Sirainen <tss@iki.fi>
Fri, 26 Aug 2011 02:10:54 +0000 (05:10 +0300)
committerTimo Sirainen <tss@iki.fi>
Fri, 26 Aug 2011 02:10:54 +0000 (05:10 +0300)
This fixes a problem with shutdown_clients=no when a closed director process
could hang around forever waiting for the FIFO to close.

src/director/notify-connection.c
src/lib-master/master-service.c
src/log/log-connection.c

index 0a0daf0b49a70420467c5166e0cd0b8b69f5d6ea..665521113b05e613a886325cd526fc81ac1f403d 100644 (file)
@@ -65,6 +65,4 @@ void notify_connection_deinit(struct notify_connection **_conn)
        if (close(conn->fd) < 0)
                i_error("close(notify connection) failed: %m");
        i_free(conn);
-
-       master_service_client_connection_destroyed(master_service);
 }
index c272659b213280292e2dceacd6de22487ec298e5..33c09c6b03f720d436ed9805f586ad077a51f229 100644 (file)
@@ -760,6 +760,11 @@ static void master_service_listen(struct master_service_listener *l)
                        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)
index 320d0d28b0e8b9949b02338bbd9a472c3e4b46fb..54b277f242aac55d20a5a59b93d9641351756f4b 100644 (file)
@@ -282,8 +282,6 @@ void log_connection_destroy(struct log_connection *log)
                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)