changeset 12880:6a9348fb2253

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.
author Timo Sirainen <tss@iki.fi>
date Mon, 04 Apr 2011 14:09:11 +0300
parents 939e0fccd517
children b3392b09623a
files src/lib-storage/index/imapc/imapc-client-private.h src/lib-storage/index/imapc/imapc-client.c src/lib-storage/index/imapc/imapc-client.h src/lib-storage/index/imapc/imapc-mail-fetch.c src/lib-storage/index/imapc/imapc-save.c src/lib-storage/index/imapc/imapc-storage.c src/lib-storage/index/imapc/imapc-storage.h
diffstat 7 files changed, 3 insertions(+), 77 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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;
--- 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);
 
--- 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;
--- 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);
--- 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)
--- 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);