From: Timo Sirainen Date: Sun, 4 Sep 2011 07:48:46 +0000 (+0300) Subject: imapc: Fixed IDLE handling. X-Git-Tag: 2.1.alpha2~96 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6021cfec086e455d5bf5db35522953e13a97bb61;p=thirdparty%2Fdovecot%2Fcore.git imapc: Fixed IDLE handling. --- diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index b303690d4b..d37a7da24c 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -510,6 +510,16 @@ static void imapc_idle_timeout(struct imapc_mailbox *mbox) imapc_async_callback, mbox->storage); } +static void imapc_idle_noop_callback(const struct imapc_command_reply *reply, + void *context) + +{ + struct imapc_mailbox *mbox = context; + + imapc_async_callback(reply, mbox->box.storage); + imapc_client_mailbox_idle(mbox->client_box); +} + static void imapc_notify_changes(struct mailbox *box) { struct imapc_mailbox *mbox = (struct imapc_mailbox *)box; @@ -528,7 +538,7 @@ static void imapc_notify_changes(struct mailbox *box) here by sending a NOOP. this helps with clients that break IDLE when clicking "get mail". */ imapc_client_mailbox_cmd(mbox->client_box, "NOOP", - imapc_async_callback, mbox->storage); + imapc_idle_noop_callback, mbox); } else { /* remote server doesn't support IDLE. check for changes with NOOP every once in a while. */