dovecot-2.0-sslstream: lib-master: Don't leak post-login connect...

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 13 02:58:36 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0-sslstream/rev/f4e64cb17aea
changeset: 10589:f4e64cb17aea
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Jan 27 21:25:44 2010 +0200
description:
lib-master: Don't leak post-login connections.

diffstat:

1 file changed, 4 insertions(+), 6 deletions(-)
src/lib-master/master-login.c |   10 ++++------

diffs (34 lines):

diff -r bea4b2d1f27f -r f4e64cb17aea src/lib-master/master-login.c
--- a/src/lib-master/master-login.c	Wed Jan 27 18:49:46 2010 +0200
+++ b/src/lib-master/master-login.c	Wed Jan 27 21:25:44 2010 +0200
@@ -345,7 +345,6 @@ static void master_login_conn_input(stru
 	struct master_login_client *client;
 	struct master_login *login = conn->login;
 	unsigned char data[MASTER_AUTH_MAX_DATA_SIZE];
-	unsigned int request_count;
 	int ret, client_fd;
 
 	ret = master_login_conn_read_request(conn, &req, data, &client_fd);
@@ -369,9 +368,6 @@ static void master_login_conn_input(stru
 
 	master_login_auth_request(login->auth, &req,
 				  master_login_auth_callback, client);
-	request_count = master_login_auth_request_count(login->auth);
-	if (login->service->master_status.available_count <= request_count)
-		io_remove(&conn->io);
 }
 
 void master_login_add(struct master_login *login, int fd)
@@ -386,8 +382,10 @@ void master_login_add(struct master_logi
 
 	DLLIST_PREPEND(&login->conns, conn);
 
-	/* don't accept more connections. this is mainly a temporary
-	   workaround.. */
+	/* FIXME: currently there's a separate connection for each request.
+	   and currently we don't try to accept more connections until this
+	   request's authentication is finished, because updating
+	   available_count gets tricky. */
 	master_service_io_listeners_remove(login->service);
 }
 


More information about the dovecot-cvs mailing list