dovecot-2.0-sslstream: lib-storage: Moved struct mail_index_* fr...

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 13 03:00:52 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0-sslstream/rev/e7f066508299
changeset: 10658:e7f066508299
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Feb 07 15:44:33 2010 +0200
description:
lib-storage: Moved struct mail_index_* from index_mailbox to mailbox.
We're relying more and more of all mailboxes being used via lib-index, and
this change makes accessing the indexes easier.

diffstat:

50 files changed, 290 insertions(+), 304 deletions(-)
src/lib-storage/index/cydir/cydir-save.c                 |    2 
src/lib-storage/index/cydir/cydir-storage.c              |    4 
src/lib-storage/index/cydir/cydir-sync.c                 |    6 -
src/lib-storage/index/dbox-common/dbox-sync-rebuild.c    |    2 
src/lib-storage/index/dbox-multi/mdbox-mail.c            |   10 -
src/lib-storage/index/dbox-multi/mdbox-save.c            |    6 -
src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c |   10 -
src/lib-storage/index/dbox-multi/mdbox-storage.c         |   24 ++--
src/lib-storage/index/dbox-multi/mdbox-sync.c            |   10 -
src/lib-storage/index/dbox-single/sdbox-mail.c           |    4 
src/lib-storage/index/dbox-single/sdbox-save.c           |    2 
src/lib-storage/index/dbox-single/sdbox-storage.c        |   16 +-
src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c   |    2 
src/lib-storage/index/dbox-single/sdbox-sync.c           |   10 -
src/lib-storage/index/index-fetch.c                      |   30 ++---
src/lib-storage/index/index-mail-headers.c               |   19 +--
src/lib-storage/index/index-mail.c                       |   22 +--
src/lib-storage/index/index-search-result.c              |    6 -
src/lib-storage/index/index-search.c                     |    2 
src/lib-storage/index/index-sort-string.c                |    3 
src/lib-storage/index/index-status.c                     |   20 +--
src/lib-storage/index/index-storage.c                    |   79 +++++---------
src/lib-storage/index/index-storage.h                    |    7 -
src/lib-storage/index/index-sync-search.c                |    2 
src/lib-storage/index/index-sync.c                       |   40 +++----
src/lib-storage/index/index-thread.c                     |    7 -
src/lib-storage/index/index-transaction.c                |   27 ++--
src/lib-storage/index/maildir/maildir-copy.c             |    2 
src/lib-storage/index/maildir/maildir-mail.c             |   12 +-
src/lib-storage/index/maildir/maildir-save.c             |    4 
src/lib-storage/index/maildir/maildir-storage.c          |    4 
src/lib-storage/index/maildir/maildir-sync-index.c       |   25 ++--
src/lib-storage/index/maildir/maildir-sync.c             |   16 +-
src/lib-storage/index/maildir/maildir-uidlist.c          |   10 -
src/lib-storage/index/maildir/maildir-util.c             |    2 
src/lib-storage/index/mbox/mbox-lock.c                   |    2 
src/lib-storage/index/mbox/mbox-mail.c                   |    6 -
src/lib-storage/index/mbox/mbox-save.c                   |    8 -
src/lib-storage/index/mbox/mbox-storage.c                |   10 -
src/lib-storage/index/mbox/mbox-sync-parse.c             |   10 +
src/lib-storage/index/mbox/mbox-sync.c                   |   29 ++---
src/lib-storage/index/raw/raw-storage.c                  |    2 
src/lib-storage/index/raw/raw-sync.c                     |    6 -
src/lib-storage/index/test-index-fetch.c                 |    8 -
src/lib-storage/mail-storage-private.h                   |    8 +
src/lib-storage/mail-storage.c                           |    9 +
src/plugins/virtual/virtual-mail.c                       |    7 -
src/plugins/virtual/virtual-search.c                     |    2 
src/plugins/virtual/virtual-storage.c                    |    4 
src/plugins/virtual/virtual-sync.c                       |   36 ++----

diffs (truncated from 2217 to 300 lines):

diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/cydir/cydir-save.c
--- a/src/lib-storage/index/cydir/cydir-save.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/cydir/cydir-save.c	Sun Feb 07 15:44:33 2010 +0200
@@ -85,7 +85,7 @@ int cydir_save_begin(struct mail_save_co
 	enum mail_flags save_flags;
 	struct istream *crlf_input;
 
-	if (mail_index_is_deleted(ctx->mbox->ibox.index)) {
+	if (mail_index_is_deleted(trans->box->index)) {
 		mailbox_set_deleted(trans->box);
 		return -1;
 	}
diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/cydir/cydir-storage.c
--- a/src/lib-storage/index/cydir/cydir-storage.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/cydir/cydir-storage.c	Sun Feb 07 15:44:33 2010 +0200
@@ -65,7 +65,7 @@ cydir_mailbox_alloc(struct mail_storage 
 	mbox->ibox.box.pool = pool;
 	mbox->ibox.box.storage = storage;
 	mbox->ibox.box.list = list;
-	mbox->ibox.mail_vfuncs = &cydir_mail_vfuncs;
+	mbox->ibox.box.mail_vfuncs = &cydir_mail_vfuncs;
 
 	mbox->ibox.save_commit_pre = cydir_transaction_save_commit_pre;
 	mbox->ibox.save_commit_post = cydir_transaction_save_commit_post;
@@ -73,7 +73,7 @@ cydir_mailbox_alloc(struct mail_storage 
 
 	index_storage_mailbox_alloc(&mbox->ibox, name, input, flags,
 				    CYDIR_INDEX_PREFIX);
-	mail_index_set_fsync_types(mbox->ibox.index,
+	mail_index_set_fsync_types(mbox->ibox.box.index,
 				   MAIL_INDEX_SYNC_TYPE_APPEND |
 				   MAIL_INDEX_SYNC_TYPE_EXPUNGE);
 
diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/cydir/cydir-sync.c
--- a/src/lib-storage/index/cydir/cydir-sync.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/cydir/cydir-sync.c	Sun Feb 07 15:44:33 2010 +0200
@@ -122,12 +122,12 @@ int cydir_sync_begin(struct cydir_mailbo
 	if (!force)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
 
-	ret = mail_index_sync_begin(mbox->ibox.index, &ctx->index_sync_ctx,
+	ret = mail_index_sync_begin(mbox->ibox.box.index, &ctx->index_sync_ctx,
 				    &ctx->sync_view, &ctx->trans,
 				    sync_flags);
 	if (ret <= 0) {
 		if (ret < 0)
-			mail_storage_set_index_error(&mbox->ibox);
+			mail_storage_set_index_error(&mbox->ibox.box);
 		i_free(ctx);
 		*ctx_r = NULL;
 		return ret;
@@ -146,7 +146,7 @@ int cydir_sync_finish(struct cydir_sync_
 	*_ctx = NULL;
 	if (success) {
 		if (mail_index_sync_commit(&ctx->index_sync_ctx) < 0) {
-			mail_storage_set_index_error(&ctx->mbox->ibox);
+			mail_storage_set_index_error(&ctx->mbox->ibox.box);
 			ret = -1;
 		}
 	} else {
diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/dbox-common/dbox-sync-rebuild.c
--- a/src/lib-storage/index/dbox-common/dbox-sync-rebuild.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/dbox-common/dbox-sync-rebuild.c	Sun Feb 07 15:44:33 2010 +0200
@@ -99,7 +99,7 @@ dbox_sync_index_rebuild_init(struct inde
 	ctx->trans = trans;
 	mail_index_reset(ctx->trans);
 	index_mailbox_reset_uidvalidity(ibox);
-	mail_index_ext_lookup(ibox->index, "cache", &ctx->cache_ext_id);
+	mail_index_ext_lookup(box->index, "cache", &ctx->cache_ext_id);
 
 	/* if backup index file exists, try to use it */
 	index_dir = mailbox_list_get_path(box->list, box->name,
diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/dbox-multi/mdbox-mail.c
--- a/src/lib-storage/index/dbox-multi/mdbox-mail.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-mail.c	Sun Feb 07 15:44:33 2010 +0200
@@ -61,8 +61,8 @@ static void dbox_mail_set_expunged(struc
 	struct mdbox_mailbox *mbox = (struct mdbox_mailbox *)mail->imail.ibox;
 	struct mail *_mail = &mail->imail.mail.mail;
 
-	(void)mail_index_refresh(mbox->ibox.index);
-	if (mail_index_is_expunged(mbox->ibox.view, _mail->seq)) {
+	(void)mail_index_refresh(_mail->box->index);
+	if (mail_index_is_expunged(_mail->box->view, _mail->seq)) {
 		mail_set_expunged(_mail);
 		return;
 	}
@@ -112,8 +112,8 @@ int mdbox_mail_open(struct dbox_mail *ma
 		if (mail->open_file != NULL) {
 			/* already open */
 		} else if (_mail->uid != 0) {
-			if (mdbox_mail_lookup(mbox, mbox->ibox.view, _mail->seq,
-					      &map_uid) < 0)
+			if (mdbox_mail_lookup(mbox, _mail->box->view,
+					      _mail->seq, &map_uid) < 0)
 				return -1;
 			if (dbox_mail_open_init(mail, map_uid) < 0)
 				return -1;
@@ -160,7 +160,7 @@ static int mdbox_mail_get_save_date(stru
 	const void *data;
 	bool expunged;
 
-	mail_index_lookup_ext(mbox->ibox.view, mail->seq,
+	mail_index_lookup_ext(mail->box->view, mail->seq,
 			      mbox->ext_id, &data, &expunged);
 	dbox_rec = data;
 	if (dbox_rec == NULL || dbox_rec->map_uid == 0) {
diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/dbox-multi/mdbox-save.c
--- a/src/lib-storage/index/dbox-multi/mdbox-save.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-save.c	Sun Feb 07 15:44:33 2010 +0200
@@ -97,7 +97,7 @@ int mdbox_save_begin(struct mail_save_co
 	struct dbox_save_mail *save_mail;
 	uoff_t mail_size, append_offset;
 
-	if (mail_index_is_deleted(ctx->mbox->ibox.index)) {
+	if (mail_index_is_deleted(_ctx->transaction->box->index)) {
 		mailbox_set_deleted(_ctx->transaction->box);
 		return -1;
 	}
@@ -344,7 +344,7 @@ int mdbox_copy(struct mail_save_context 
 
 	memset(&rec, 0, sizeof(rec));
 	rec.save_date = ioloop_time;
-	if (mdbox_mail_lookup(src_mbox, src_mbox->ibox.view, mail->seq,
+	if (mdbox_mail_lookup(src_mbox, mail->box->view, mail->seq,
 			      &rec.map_uid) < 0)
 		return -1;
 
@@ -358,7 +358,7 @@ int mdbox_copy(struct mail_save_context 
 	mail_index_update_ext(ctx->ctx.trans, ctx->ctx.seq,
 			      ctx->mbox->ext_id, &rec, NULL);
 
-	mail_index_lookup_ext(src_mbox->ibox.view, mail->seq,
+	mail_index_lookup_ext(mail->box->view, mail->seq,
 			      src_mbox->guid_ext_id, &data, &expunged);
 	if (data != NULL) {
 		mail_index_update_ext(ctx->ctx.trans, ctx->ctx.seq,
diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c
--- a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c	Sun Feb 07 15:44:33 2010 +0200
@@ -420,11 +420,11 @@ rebuild_mailbox(struct mdbox_storage_reb
 	}
 	mbox = (struct mdbox_mailbox *)box;
 
-	ret = mail_index_sync_begin(mbox->ibox.index, &sync_ctx, &view, &trans,
+	ret = mail_index_sync_begin(box->index, &sync_ctx, &view, &trans,
 				    MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES);
 	if (ret <= 0) {
 		i_assert(ret != 0);
-		mail_storage_set_index_error(&mbox->ibox);
+		mail_storage_set_index_error(box);
 		mailbox_close(&box);
 		return -1;
 	}
@@ -434,7 +434,7 @@ rebuild_mailbox(struct mdbox_storage_reb
 	dbox_sync_index_rebuild_deinit(&rebuild_ctx);
 
 	if (mail_index_sync_commit(&sync_ctx) < 0) {
-		mail_storage_set_index_error(&mbox->ibox);
+		mail_storage_set_index_error(box);
 		ret = -1;
 	}
 
@@ -580,13 +580,13 @@ static int rebuild_restore_msg(struct md
 			return -1;
 	}
 	if (ctx->prev_msg.box == NULL) {
-		ret = mail_index_sync_begin(mbox->ibox.index,
+		ret = mail_index_sync_begin(box->index,
 					    &ctx->prev_msg.sync_ctx,
 					    &ctx->prev_msg.view,
 					    &ctx->prev_msg.trans, 0);
 		if (ret <= 0) {
 			i_assert(ret != 0);
-			mail_storage_set_index_error(&mbox->ibox);
+			mail_storage_set_index_error(box);
 			mailbox_close(&box);
 			return -1;
 		}
diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/dbox-multi/mdbox-storage.c
--- a/src/lib-storage/index/dbox-multi/mdbox-storage.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-storage.c	Sun Feb 07 15:44:33 2010 +0200
@@ -116,7 +116,7 @@ mdbox_mailbox_alloc(struct mail_storage 
 	mbox->ibox.box.pool = pool;
 	mbox->ibox.box.storage = storage;
 	mbox->ibox.box.list = list;
-	mbox->ibox.mail_vfuncs = &mdbox_mail_vfuncs;
+	mbox->ibox.box.mail_vfuncs = &mdbox_mail_vfuncs;
 
 	mbox->ibox.save_commit_pre = mdbox_transaction_save_commit_pre;
 	mbox->ibox.save_commit_post = mdbox_transaction_save_commit_post;
@@ -124,7 +124,7 @@ mdbox_mailbox_alloc(struct mail_storage 
 
 	index_storage_mailbox_alloc(&mbox->ibox, name, input, flags,
 				    DBOX_INDEX_PREFIX);
-	mail_index_set_fsync_types(mbox->ibox.index,
+	mail_index_set_fsync_types(mbox->ibox.box.index,
 				   MAIL_INDEX_SYNC_TYPE_APPEND |
 				   MAIL_INDEX_SYNC_TYPE_EXPUNGE);
 
@@ -133,14 +133,14 @@ mdbox_mailbox_alloc(struct mail_storage 
 
 	mbox->storage = (struct mdbox_storage *)storage;
 	mbox->ext_id =
-		mail_index_ext_register(mbox->ibox.index, "mdbox", 0,
+		mail_index_ext_register(mbox->ibox.box.index, "mdbox", 0,
 					sizeof(struct mdbox_mail_index_record),
 					sizeof(uint32_t));
 	mbox->hdr_ext_id =
-		mail_index_ext_register(mbox->ibox.index, "mdbox-hdr",
+		mail_index_ext_register(mbox->ibox.box.index, "mdbox-hdr",
 					sizeof(struct mdbox_index_header), 0, 0);
 	mbox->guid_ext_id =
-		mail_index_ext_register(mbox->ibox.index, "guid",
+		mail_index_ext_register(mbox->ibox.box.index, "guid",
 					0, MAIL_GUID_128_SIZE, 1);
 	return &mbox->ibox.box;
 }
@@ -151,7 +151,7 @@ int mdbox_read_header(struct mdbox_mailb
 	const void *data;
 	size_t data_size;
 
-	mail_index_get_header_ext(mbox->ibox.view, mbox->hdr_ext_id,
+	mail_index_get_header_ext(mbox->ibox.box.view, mbox->hdr_ext_id,
 				  &data, &data_size);
 	if (data_size < MDBOX_INDEX_HEADER_MIN_SIZE &&
 	    (!mbox->creating || data_size != 0)) {
@@ -202,8 +202,8 @@ static int mdbox_write_index_header(stru
 	if (dbox_map_open(mbox->storage->map, TRUE) < 0)
 		return -1;
 
-	hdr = mail_index_get_header(mbox->ibox.view);
-	trans = mail_index_transaction_begin(mbox->ibox.view, 0);
+	hdr = mail_index_get_header(box->view);
+	trans = mail_index_transaction_begin(box->view, 0);
 	mdbox_update_header(mbox, trans, update);
 
 	uid_validity = hdr->uid_validity;
@@ -226,7 +226,7 @@ static int mdbox_write_index_header(stru
 			&uid_next, sizeof(uid_next), TRUE);
 	}
 	if (update != NULL && update->min_highest_modseq != 0 &&
-	    mail_index_modseq_get_highest(mbox->ibox.view) <
+	    mail_index_modseq_get_highest(box->view) <
 	    					update->min_highest_modseq) {
 		mail_index_update_highest_modseq(trans,
 						 update->min_highest_modseq);
@@ -234,7 +234,7 @@ static int mdbox_write_index_header(stru
 
 	if (mail_index_transaction_commit(&trans) < 0) {
 		mail_storage_set_internal_error(box->storage);
-		mail_index_reset_error(mbox->ibox.index);
+		mail_index_reset_error(box->index);
 		return -1;
 	}
 	return 0;
@@ -326,9 +326,9 @@ mdbox_mailbox_unref_mails(struct mailbox
 
 	/* get a list of all map_uids in this mailbox */
 	i_array_init(&map_uids, 128);
-	hdr = mail_index_get_header(mbox->ibox.view);
+	hdr = mail_index_get_header(box->view);
 	for (seq = 1; seq <= hdr->messages_count; seq++) {
-		mail_index_lookup_ext(mbox->ibox.view, seq, mbox->ext_id,
+		mail_index_lookup_ext(box->view, seq, mbox->ext_id,
 				      &data, &expunged);
 		dbox_rec = data;
 		if (dbox_rec == NULL) {
diff -r 9d3b5cbef222 -r e7f066508299 src/lib-storage/index/dbox-multi/mdbox-sync.c
--- a/src/lib-storage/index/dbox-multi/mdbox-sync.c	Sun Feb 07 04:50:40 2010 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-sync.c	Sun Feb 07 15:44:33 2010 +0200
@@ -167,14 +167,14 @@ static int mdbox_refresh_header(struct m
 	struct mdbox_index_header hdr;
 	int ret;
 
-	view = mail_index_view_open(mbox->ibox.index);
+	view = mail_index_view_open(mbox->ibox.box.index);
 	ret = mdbox_read_header(mbox, &hdr);
 	mail_index_view_close(&view);
 
 	if (ret == 0) {
 		ret = mbox->storage->storage.files_corrupted ? -1 : 0;
 	} else if (retry) {
-		(void)mail_index_refresh(mbox->ibox.index);
+		(void)mail_index_refresh(mbox->ibox.box.index);
 		return mdbox_refresh_header(mbox, FALSE);
 	}
 	return ret;
@@ -213,13 +213,13 @@ int mdbox_sync_begin(struct mdbox_mailbo
 	sync_flags |= MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES;
 
 	for (i = 0;; i++) {
-		ret = mail_index_sync_begin(mbox->ibox.index,
+		ret = mail_index_sync_begin(mbox->ibox.box.index,
 					    &ctx->index_sync_ctx,
 					    &ctx->sync_view, &ctx->trans,
 					    sync_flags);
 		if (ret <= 0) {
 			if (ret < 0)
-				mail_storage_set_index_error(&mbox->ibox);
+				mail_storage_set_index_error(&mbox->ibox.box);


More information about the dovecot-cvs mailing list