dovecot-2.2: lib-master: Fix to previous commit.

dovecot at dovecot.org dovecot at dovecot.org
Wed Oct 23 16:33:51 EEST 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/487afab10a4b
changeset: 16875:487afab10a4b
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Oct 23 16:33:43 2013 +0300
description:
lib-master: Fix to previous commit.
It broke doveadm-server's "does client need authentication?" check.

diffstat:

 src/lib-master/master-service.c |  19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

diffs (36 lines):

diff -r 25f6fbeff5d9 -r 487afab10a4b src/lib-master/master-service.c
--- a/src/lib-master/master-service.c	Wed Oct 23 16:23:23 2013 +0300
+++ b/src/lib-master/master-service.c	Wed Oct 23 16:33:43 2013 +0300
@@ -638,15 +638,6 @@
 	i_assert(service->master_status.available_count > 0);
 	service->master_status.available_count--;
 	master_status_update(service);
-
-	if (service->master_status.available_count == 0 &&
-	    service->service_count_left == 1) {
-		/* we're not going to accept any more connections after this.
-		   go ahead and close the connection early. */
-		i_assert(service->listeners != NULL);
-		master_service_io_listeners_remove(service);
-		master_service_io_listeners_close(service);
-	}
 }
 
 void master_service_client_connection_accept(struct master_service_connection *conn)
@@ -849,6 +840,16 @@
 		   as real clients */
 		master_service_client_connection_destroyed(service);
 	}
+	if (service->master_status.available_count == 0 &&
+	    service->service_count_left == 1) {
+		/* we're not going to accept any more connections after this.
+		   go ahead and close the connection early. don't do this
+		   before calling callback, because it may want to access
+		   the listen_fd (e.g. to check socket permissions). */
+		i_assert(service->listeners != NULL);
+		master_service_io_listeners_remove(service);
+		master_service_io_listeners_close(service);
+	}
 }
 
 static void io_listeners_init(struct master_service *service)


More information about the dovecot-cvs mailing list