dovecot-2.0: lib-master: Don't leak post-login connections.
dovecot at dovecot.org
dovecot at dovecot.org
Wed Jan 27 21:29:24 EET 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/f4e64cb17aea
changeset: 10588: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