Mercurial > dovecot > original-hg > dovecot-2.2
changeset 16656:19719ea2cddb
lib-auth: Previous changes didn't set the current ioloop correctly, causing problems.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 05 Aug 2013 22:15:08 +0300 |
parents | 647ef2264398 |
children | c41eab7d5d05 |
files | src/lib-auth/auth-master.c |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-auth/auth-master.c Mon Aug 05 22:13:28 2013 +0300 +++ b/src/lib-auth/auth-master.c Mon Aug 05 22:15:08 2013 +0300 @@ -287,7 +287,9 @@ while ((line = i_stream_next_line(conn->input)) != NULL) { T_BEGIN { + io_loop_set_current(conn->prev_ioloop); ret = auth_handle_line(conn, line); + io_loop_set_current(conn->ioloop); } T_END; if (!ret) return; @@ -369,6 +371,7 @@ if (conn->prev_ioloop == NULL) auth_connection_close(conn); else { + i_assert(conn->to == NULL); conn->to = timeout_add(1000*AUTH_MASTER_IDLE_SECS, auth_idle_timeout, conn); } @@ -682,6 +685,7 @@ if (auth_master_run_cmd_pre(conn, str_c(str)) < 0) ctx->failed = TRUE; + io_loop_set_current(conn->prev_ioloop); conn->prefix = DEFAULT_USERDB_LOOKUP_PREFIX; return ctx; } @@ -701,7 +705,9 @@ } T_END; } else { /* wait for more data */ + io_loop_set_current(ctx->conn->ioloop); io_loop_run(ctx->conn->ioloop); + io_loop_set_current(ctx->conn->prev_ioloop); } if (ctx->finished || ctx->failed)