dovecot-2.1: imapc: IDLE didn't notify immediately about new mails.
dovecot at dovecot.org
dovecot at dovecot.org
Fri Oct 7 21:07:34 EEST 2011
details: http://hg.dovecot.org/dovecot-2.1/rev/3058a10313bd
changeset: 13617:3058a10313bd
user: Timo Sirainen <tss at iki.fi>
date: Fri Oct 07 20:50:02 2011 +0300
description:
imapc: IDLE didn't notify immediately about new mails.
diffstat:
src/lib-storage/index/imapc/imapc-mailbox.c | 43 ++++++++++++++--------------
1 files changed, 22 insertions(+), 21 deletions(-)
diffs (60 lines):
diff -r cd4a65125c84 -r 3058a10313bd src/lib-storage/index/imapc/imapc-mailbox.c
--- a/src/lib-storage/index/imapc/imapc-mailbox.c Fri Oct 07 20:49:32 2011 +0300
+++ b/src/lib-storage/index/imapc/imapc-mailbox.c Fri Oct 07 20:50:02 2011 +0300
@@ -102,6 +102,27 @@
return ret;
}
+static void imapc_mailbox_idle_timeout(struct imapc_mailbox *mbox)
+{
+ timeout_remove(&mbox->to_idle_delay);
+ if (mbox->box.notify_callback != NULL)
+ mbox->box.notify_callback(&mbox->box, mbox->box.notify_context);
+}
+
+static void imapc_mailbox_idle_notify(struct imapc_mailbox *mbox)
+{
+ struct ioloop *old_ioloop = current_ioloop;
+
+ if (mbox->box.notify_callback != NULL &&
+ mbox->to_idle_delay == NULL) {
+ io_loop_set_current(mbox->storage->root_ioloop);
+ mbox->to_idle_delay =
+ timeout_add(NOTIFY_DELAY_MSECS,
+ imapc_mailbox_idle_timeout, mbox);
+ io_loop_set_current(old_ioloop);
+ }
+}
+
static void
imapc_untagged_exists(const struct imapc_untagged_reply *reply,
struct imapc_mailbox *mbox)
@@ -124,27 +145,7 @@
mbox->sync_fetch_first_uid = hdr->next_uid;
}
mbox->exists_count = exists_count;
-}
-
-static void imapc_mailbox_idle_timeout(struct imapc_mailbox *mbox)
-{
- timeout_remove(&mbox->to_idle_delay);
- if (mbox->box.notify_callback != NULL)
- mbox->box.notify_callback(&mbox->box, mbox->box.notify_context);
-}
-
-static void imapc_mailbox_idle_notify(struct imapc_mailbox *mbox)
-{
- struct ioloop *old_ioloop = current_ioloop;
-
- if (mbox->box.notify_callback != NULL &&
- mbox->to_idle_delay == NULL) {
- io_loop_set_current(mbox->storage->root_ioloop);
- mbox->to_idle_delay =
- timeout_add(NOTIFY_DELAY_MSECS,
- imapc_mailbox_idle_timeout, mbox);
- io_loop_set_current(old_ioloop);
- }
+ imapc_mailbox_idle_notify(mbox);
}
static bool keywords_are_equal(struct mail_keywords *kw,
More information about the dovecot-cvs
mailing list