From: Timo Sirainen Date: Mon, 22 Nov 2010 19:04:13 +0000 (+0000) Subject: imap: Make sure IDLE isn't broken too early if DONE is sent in multiple packets. X-Git-Tag: 2.0.8~57 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=61e04b38e0ec0d53f9ecdc1888ab25bbf8d95105;p=thirdparty%2Fdovecot%2Fcore.git imap: Make sure IDLE isn't broken too early if DONE is sent in multiple packets. --- diff --git a/src/imap/cmd-idle.c b/src/imap/cmd-idle.c index 8d87beb3d0..3ca259481e 100644 --- a/src/imap/cmd-idle.c +++ b/src/imap/cmd-idle.c @@ -87,11 +87,11 @@ static void idle_client_input_more(struct cmd_idle_context *ctx) client->input_skip_line = FALSE; else { idle_finish(ctx, strcasecmp(line, "DONE") == 0, TRUE); + if (!client->disconnected) + client_continue_pending_input(client); break; } } - if (!client->disconnected && !client->handling_input) - client_continue_pending_input(client); } static void idle_client_input(struct cmd_idle_context *ctx)