From f5be4f5b4a1bba7f3497f52d01e582b82af2b355 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 7 Oct 2011 20:49:32 +0300 Subject: [PATCH] imapc: Code cleanup: avoid unnecessarily accessing imapc-client-private.h --- src/lib-storage/index/imapc/imapc-mailbox.c | 4 ++++ src/lib-storage/index/imapc/imapc-storage.c | 18 ++---------------- src/lib-storage/index/imapc/imapc-storage.h | 1 + 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/lib-storage/index/imapc/imapc-mailbox.c b/src/lib-storage/index/imapc/imapc-mailbox.c index 28d85c2762..92731d34e6 100644 --- a/src/lib-storage/index/imapc/imapc-mailbox.c +++ b/src/lib-storage/index/imapc/imapc-mailbox.c @@ -135,11 +135,15 @@ static void imapc_mailbox_idle_timeout(struct imapc_mailbox *mbox) 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); } } diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 650788676d..3162fed32b 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -7,7 +7,7 @@ #include "imap-resp-code.h" #include "mailbox-tree.h" #include "imapc-mail.h" -#include "imapc-client-private.h" +#include "imapc-client.h" #include "imapc-connection.h" #include "imapc-list.h" #include "imapc-sync.h" @@ -78,6 +78,7 @@ static struct mail_storage *imapc_storage_alloc(void) storage = p_new(pool, struct imapc_storage, 1); storage->storage = imapc_storage; storage->storage.pool = pool; + storage->root_ioloop = current_ioloop; return &storage->storage; } @@ -112,22 +113,7 @@ void imapc_simple_run(struct imapc_simple_context *sctx) void imapc_storage_run(struct imapc_storage *storage) { - struct imapc_client_mailbox *client_box; - struct imapc_client_connection *const *connp; - struct imapc_mailbox *mbox; - imapc_client_run_pre(storage->client); - - array_foreach(&storage->client->conns, connp) { - client_box = imapc_connection_get_mailbox((*connp)->conn); - if (client_box == NULL) - continue; - - mbox = client_box->untagged_box_context; - if (mbox->to_idle_delay != NULL) - mbox->to_idle_delay = io_loop_move_timeout(&mbox->to_idle_delay); - } - imapc_client_run_post(storage->client); } diff --git a/src/lib-storage/index/imapc/imapc-storage.h b/src/lib-storage/index/imapc/imapc-storage.h index ce079ad91e..1d229b7811 100644 --- a/src/lib-storage/index/imapc/imapc-storage.h +++ b/src/lib-storage/index/imapc/imapc-storage.h @@ -31,6 +31,7 @@ struct imapc_storage { struct mail_storage storage; const struct imapc_settings *set; + struct ioloop *root_ioloop; struct imapc_mailbox_list *list; struct imapc_client *client; -- 2.47.3