]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Make sure IDLE isn't broken too early if DONE is sent in multiple packets.
authorTimo Sirainen <tss@iki.fi>
Mon, 22 Nov 2010 19:04:13 +0000 (19:04 +0000)
committerTimo Sirainen <tss@iki.fi>
Mon, 22 Nov 2010 19:04:13 +0000 (19:04 +0000)
src/imap/cmd-idle.c

index 8d87beb3d0a3d6bec9d89ac0f3658284a972d255..3ca259481e85761e87b8cd8ef7c263785b2b5751 100644 (file)
@@ -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)