Mercurial > dovecot > core-2.2
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 },