# HG changeset patch # User Timo Sirainen # Date 1301915351 -10800 # Node ID 6a9348fb225303bdd8e7be0942bcf8fe6b4dd4e3 # Parent 939e0fccd5175fc5c1aaf7474a82f62ff19b19ee imapc: Removed support for connection locking and multiple connections to mailbox. If needed they can be added back by reversing this change, but for now they're no longer needed. diff -r 939e0fccd517 -r 6a9348fb2253 src/lib-storage/index/imapc/imapc-client-private.h --- a/src/lib-storage/index/imapc/imapc-client-private.h Mon Apr 04 13:51:34 2011 +0300 +++ b/src/lib-storage/index/imapc/imapc-client-private.h Mon Apr 04 14:09:11 2011 +0300 @@ -30,8 +30,6 @@ void *untagged_box_context; unsigned int pending_box_command_count; - - unsigned int locked:1; }; #endif diff -r 939e0fccd517 -r 6a9348fb2253 src/lib-storage/index/imapc/imapc-client.c --- a/src/lib-storage/index/imapc/imapc-client.c Mon Apr 04 13:51:34 2011 +0300 +++ b/src/lib-storage/index/imapc/imapc-client.c Mon Apr 04 14:09:11 2011 +0300 @@ -336,25 +336,6 @@ return box->seqmap; } -void imapc_client_mailbox_lock(struct imapc_client_mailbox *box) -{ - i_assert(!box->locked); - - box->locked = TRUE; -} - -void imapc_client_mailbox_unlock(struct imapc_client_mailbox *box) -{ - i_assert(box->locked); - - box->locked = FALSE; -} - -bool imapc_client_mailbox_is_locked(struct imapc_client_mailbox *box) -{ - return box->locked; -} - void imapc_client_mailbox_idle(struct imapc_client_mailbox *box) { struct imapc_command_reply reply; diff -r 939e0fccd517 -r 6a9348fb2253 src/lib-storage/index/imapc/imapc-client.h --- a/src/lib-storage/index/imapc/imapc-client.h Mon Apr 04 13:51:34 2011 +0300 +++ b/src/lib-storage/index/imapc/imapc-client.h Mon Apr 04 14:09:11 2011 +0300 @@ -136,10 +136,6 @@ struct imapc_seqmap * imapc_client_mailbox_get_seqmap(struct imapc_client_mailbox *box); -void imapc_client_mailbox_lock(struct imapc_client_mailbox *box); -void imapc_client_mailbox_unlock(struct imapc_client_mailbox *box); -bool imapc_client_mailbox_is_locked(struct imapc_client_mailbox *box); - void imapc_client_mailbox_idle(struct imapc_client_mailbox *box); bool imapc_client_mailbox_is_connected(struct imapc_client_mailbox *box); diff -r 939e0fccd517 -r 6a9348fb2253 src/lib-storage/index/imapc/imapc-mail-fetch.c --- a/src/lib-storage/index/imapc/imapc-mail-fetch.c Mon Apr 04 13:51:34 2011 +0300 +++ b/src/lib-storage/index/imapc/imapc-mail-fetch.c Mon Apr 04 14:09:11 2011 +0300 @@ -51,7 +51,6 @@ { struct imapc_mail *mail = (struct imapc_mail *)_mail; struct imapc_mailbox *mbox = (struct imapc_mailbox *)_mail->box; - struct imapc_client_mailbox *client_box; string_t *str; if (_mail->lookup_abort != MAIL_LOOKUP_ABORT_NEVER) @@ -65,9 +64,6 @@ if ((fields & MAIL_FETCH_STREAM_BODY) != 0) fields |= MAIL_FETCH_STREAM_HEADER; - if (imapc_mailbox_get_client_box(mbox, &client_box) < 0) - return -1; - str = t_str_new(64); str_printfa(str, "UID FETCH %u (", _mail->uid); if ((fields & MAIL_FETCH_RECEIVED_DATE) != 0) @@ -84,7 +80,8 @@ if (mail->fetch_count++ == 0) array_append(&mbox->fetch_mails, &mail, 1); - imapc_client_mailbox_cmdf(client_box, imapc_mail_prefetch_callback, + imapc_client_mailbox_cmdf(mbox->client_box, + imapc_mail_prefetch_callback, mail, "%1s", str_c(str)); mail->imail.data.prefetch_sent = TRUE; return 0; diff -r 939e0fccd517 -r 6a9348fb2253 src/lib-storage/index/imapc/imapc-save.c --- a/src/lib-storage/index/imapc/imapc-save.c Mon Apr 04 13:51:34 2011 +0300 +++ b/src/lib-storage/index/imapc/imapc-save.c Mon Apr 04 14:09:11 2011 +0300 @@ -322,19 +322,15 @@ struct imapc_save_context *ctx = (struct imapc_save_context *)_ctx; struct mailbox_transaction_context *_t = _ctx->transaction; struct imapc_mailbox *src_mbox = (struct imapc_mailbox *)mail->box; - struct imapc_client_mailbox *src_client_box; struct imapc_save_cmd_context sctx; i_assert((_t->flags & MAILBOX_TRANSACTION_FLAG_EXTERNAL) != 0); if (_t->box->storage == mail->box->storage) { /* same server, we can use COPY for the mail */ - if (imapc_mailbox_get_client_box(src_mbox, &src_client_box) < 0) - return -1; - sctx.ret = -2; sctx.ctx = ctx; - imapc_client_mailbox_cmdf(src_client_box, + imapc_client_mailbox_cmdf(src_mbox->client_box, imapc_copy_callback, &sctx, "UID COPY %u %s", mail->uid, _t->box->name); diff -r 939e0fccd517 -r 6a9348fb2253 src/lib-storage/index/imapc/imapc-storage.c --- a/src/lib-storage/index/imapc/imapc-storage.c Mon Apr 04 13:51:34 2011 +0300 +++ b/src/lib-storage/index/imapc/imapc-storage.c Mon Apr 04 14:09:11 2011 +0300 @@ -281,7 +281,6 @@ p_array_init(&mbox->untagged_callbacks, pool, 16); p_array_init(&mbox->resp_text_callbacks, pool, 16); - p_array_init(&mbox->alt_client_boxes, pool, 4); p_array_init(&mbox->fetch_mails, pool, 16); imapc_mailbox_register_callbacks(mbox); return &mbox->box; @@ -339,46 +338,10 @@ return 0; } -int imapc_mailbox_get_client_box(struct imapc_mailbox *mbox, - struct imapc_client_mailbox **client_box_r) -{ - struct imapc_client_mailbox *const *client_boxp, *alt_box; - struct imapc_simple_context sctx; - - if (!imapc_client_mailbox_is_locked(mbox->client_box)) { - *client_box_r = mbox->client_box; - return 0; - } - - array_foreach(&mbox->alt_client_boxes, client_boxp) { - if (!imapc_client_mailbox_is_locked(*client_boxp)) { - *client_box_r = *client_boxp; - return 0; - } - } - - imapc_simple_context_init(&sctx, mbox->storage); - alt_box = imapc_client_mailbox_open(mbox->storage->client, - mbox->box.name, TRUE, - imapc_simple_callback, - &sctx, NULL); - imapc_simple_run(&sctx); - - if (sctx.ret < 0) { - imapc_client_mailbox_close(&alt_box); - return -1; - } - array_append(&mbox->alt_client_boxes, &alt_box, 1); - return 0; -} - static void imapc_mailbox_close(struct mailbox *box) { struct imapc_mailbox *mbox = (struct imapc_mailbox *)box; - struct imapc_client_mailbox **client_boxp; - array_foreach_modifiable(&mbox->alt_client_boxes, client_boxp) - imapc_client_mailbox_close(client_boxp); if (mbox->client_box != NULL) imapc_client_mailbox_close(&mbox->client_box); if (mbox->delayed_sync_view != NULL) diff -r 939e0fccd517 -r 6a9348fb2253 src/lib-storage/index/imapc/imapc-storage.h --- a/src/lib-storage/index/imapc/imapc-storage.h Mon Apr 04 13:51:34 2011 +0300 +++ b/src/lib-storage/index/imapc/imapc-storage.h Mon Apr 04 14:09:11 2011 +0300 @@ -43,10 +43,7 @@ struct imapc_mailbox { struct mailbox box; struct imapc_storage *storage; - /* primary client connection to mailbox. handles untagged replies. */ struct imapc_client_mailbox *client_box; - /* alternative EXAMINEd client connections to mailbox. */ - ARRAY_DEFINE(alt_client_boxes, struct imapc_client_mailbox *); struct mail_index_transaction *delayed_sync_trans; struct mail_index_view *sync_view, *delayed_sync_view; @@ -89,8 +86,6 @@ void *context); void imapc_async_stop_callback(const struct imapc_command_reply *reply, void *context); -int imapc_mailbox_get_client_box(struct imapc_mailbox *mbox, - struct imapc_client_mailbox **client_box_r); int imapc_mailbox_commit_delayed_trans(struct imapc_mailbox *mbox, bool *changes_r);