]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Code cleanup: avoid unnecessarily accessing imapc-client-private.h
authorTimo Sirainen <tss@iki.fi>
Fri, 7 Oct 2011 17:49:32 +0000 (20:49 +0300)
committerTimo Sirainen <tss@iki.fi>
Fri, 7 Oct 2011 17:49:32 +0000 (20:49 +0300)
src/lib-storage/index/imapc/imapc-mailbox.c
src/lib-storage/index/imapc/imapc-storage.c
src/lib-storage/index/imapc/imapc-storage.h

index 28d85c27628cee0741d50cb7e811686c6b9e9f16..92731d34e6064dc031cd4266642c66dc6e9d8bd5 100644 (file)
@@ -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);
        }
 }
 
index 650788676d442c706fae06cd3b2db4f684f0b50d..3162fed32b2dcbe0d013fbcdf193b9ec397e9dc6 100644 (file)
@@ -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);
 }
 
index ce079ad91e684cde6540de017d9d3efe5cb82cfd..1d229b781140b3340ac1367f75a680345dc4c060 100644 (file)
@@ -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;