changeset 19632:727307a98574

imap: Finish all commands before starting IDLE. We don't want to send tagged command replies only after the DONE. Also this fixes assert-crash: Panic: file imap-client.c: line 852 (client_check_command_hangs): assertion failed: (!have_wait_unfinished || unfinished_count > 0) Which could be reproduced by: printf "0 SELECT INBOX\n1 NOOP\n2 IDLE\n"; read; printf "DONE\n"; read) | ./imap
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 25 Jan 2016 17:37:02 +0200
parents 97f82dbd71e7
children 7c03eb7b0f67
files src/imap/imap-commands.c
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/imap-commands.c	Mon Jan 25 10:26:17 2016 +0200
+++ b/src/imap/imap-commands.c	Mon Jan 25 17:37:02 2016 +0200
@@ -54,7 +54,11 @@
 	{ "ENABLE",		cmd_enable,      0 },
 	{ "ID",			cmd_id,          0 },
 	{ "IDLE",		cmd_idle,        COMMAND_FLAG_BREAKS_SEQS |
-						 COMMAND_FLAG_REQUIRES_SYNC },
+						 COMMAND_FLAG_REQUIRES_SYNC |
+						 /* finish syncing and sending
+						    all tagged commands before
+						    IDLE is started */
+						 COMMAND_FLAG_BREAKS_MAILBOX },
 	{ "GETMETADATA",	cmd_getmetadata, 0 },
 	{ "SETMETADATA",	cmd_setmetadata, 0 },
 	{ "NAMESPACE",		cmd_namespace,   0 },