changeset 9701:fa5e27725f6b HEAD

index-storage: Code cleanup.
author Timo Sirainen <tss@iki.fi>
date Thu, 30 Jul 2009 19:30:15 -0400
parents ac98c24da6ee
children 9f1616eeffb8
files src/lib-storage/index/cydir/cydir-sync.c src/lib-storage/index/dbox/dbox-sync.c src/lib-storage/index/index-storage.c src/lib-storage/index/index-storage.h src/lib-storage/index/index-sync.c src/lib-storage/index/maildir/maildir-save.c src/lib-storage/index/maildir/maildir-sync-index.c src/lib-storage/index/maildir/maildir-sync.c src/lib-storage/index/mbox/mbox-file.c src/lib-storage/index/mbox/mbox-sync-private.h src/lib-storage/index/mbox/mbox-sync-update.c src/lib-storage/index/mbox/mbox-sync.c src/lib-storage/index/raw/raw-sync.c src/plugins/virtual/virtual-sync.c
diffstat 14 files changed, 31 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/cydir/cydir-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/cydir/cydir-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -117,7 +117,7 @@
 	ctx->mbox = mbox;
 
 	sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY;
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 	if (!force)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
--- a/src/lib-storage/index/dbox/dbox-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/dbox/dbox-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -245,7 +245,7 @@
 	ctx->mbox = mbox;
 	ctx->flags = flags;
 
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 	if (!rebuild && (flags & DBOX_SYNC_FLAG_FORCE) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
--- a/src/lib-storage/index/index-storage.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/index-storage.c	Thu Jul 30 19:30:15 2009 -0400
@@ -483,8 +483,6 @@
 
 	ibox->index_flags = MAIL_INDEX_OPEN_FLAG_CREATE |
 		mail_storage_settings_to_index_flags(box->storage->set);
-	ibox->keep_recent = (flags & MAILBOX_FLAG_KEEP_RECENT) != 0;
-	ibox->keep_locked = (flags & MAILBOX_FLAG_KEEP_LOCKED) != 0;
 
 	ibox->next_lock_notify = time(NULL) + LOCK_NOTIFY_INTERVAL;
 	ibox->commit_log_file_seq = 0;
--- a/src/lib-storage/index/index-storage.h	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/index-storage.h	Thu Jul 30 19:30:15 2009 -0400
@@ -50,8 +50,6 @@
 
 	/* we've discovered there aren't enough permissions to modify mailbox */
 	unsigned int backend_readonly:1;
-	unsigned int keep_recent:1;
-	unsigned int keep_locked:1;
 	unsigned int sent_diskspace_warning:1;
 	unsigned int sent_readonly_flags_warning:1;
 	unsigned int notify_pending:1;
--- a/src/lib-storage/index/index-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/index-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -326,7 +326,8 @@
 	}
 	index_mailbox_expunge_unseen_recent(ctx);
 
-	if (ibox->keep_recent && ibox->box.opened) {
+	if ((ibox->box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0 &&
+	    ibox->box.opened) {
 		/* mailbox syncing didn't necessarily update our recent state */
 		hdr = mail_index_get_header(ibox->view);
 		if (hdr->first_recent_uid > ibox->recent_flags_prev_uid) {
--- a/src/lib-storage/index/maildir/maildir-save.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-save.c	Thu Jul 30 19:30:15 2009 -0400
@@ -678,7 +678,7 @@
 			index_mailbox_set_recent_uid(&mbox->ibox, uid);
 	}
 
-	if (!mbox->ibox.keep_recent) {
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
 		/* maildir_sync_index() dropped recent flags from
 		   existing messages. we'll still need to drop recent
 		   flags from these newly added messages. */
--- a/src/lib-storage/index/maildir/maildir-sync-index.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-sync-index.c	Thu Jul 30 19:30:15 2009 -0400
@@ -225,7 +225,8 @@
 
 	sync_flags = 0;
 	/* don't drop recent messages if we're saving messages */
-	if (!mbox->ibox.keep_recent && maildir_sync_ctx != NULL)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0 &&
+	    maildir_sync_ctx != NULL)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
 	if (mail_index_sync_begin(mbox->ibox.index, &sync_ctx, &view, &trans,
--- a/src/lib-storage/index/maildir/maildir-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -420,7 +420,8 @@
 	dest = t_str_new(1024);
 
 	move_new = new_dir && !mailbox_is_readonly(&ctx->mbox->ibox.box) &&
-		!ctx->mbox->ibox.keep_recent && ctx->locked;
+		(ctx->mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0 &&
+		ctx->locked;
 
 	errno = 0;
 	for (; (dp = readdir(dirp)) != NULL; errno = 0) {
@@ -669,11 +670,11 @@
 static int maildir_sync_get_changes(struct maildir_sync_context *ctx,
 				    bool *new_changed_r, bool *cur_changed_r)
 {
+	struct maildir_mailbox *mbox = ctx->mbox;
 	enum mail_index_sync_flags flags = 0;
 	bool undirty = (ctx->flags & MAILBOX_SYNC_FLAG_FULL_READ) != 0;
 
-	if (maildir_sync_quick_check(ctx->mbox, undirty,
-				     ctx->new_dir, ctx->cur_dir,
+	if (maildir_sync_quick_check(mbox, undirty, ctx->new_dir, ctx->cur_dir,
 				     new_changed_r, cur_changed_r) < 0)
 		return -1;
 
@@ -681,7 +682,7 @@
 		return 1;
 
 	if (have_recent_messages(ctx)) {
-		if (!ctx->mbox->ibox.keep_recent) {
+		if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
 			*new_changed_r = TRUE;
 			return 1;
 		} else if (*new_changed_r) {
@@ -694,10 +695,10 @@
 		}
 	}
 
-	if (!ctx->mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
-	return mail_index_sync_have_any(ctx->mbox->ibox.index, flags) ? 1 : 0;
+	return mail_index_sync_have_any(mbox->ibox.index, flags) ? 1 : 0;
 }
 
 static int maildir_sync_context(struct maildir_sync_context *ctx, bool forced,
@@ -934,7 +935,7 @@
 		} T_END;
 
 		i_assert(!maildir_uidlist_is_locked(mbox->uidlist) ||
-			 mbox->ibox.keep_locked);
+			 (box->flags & MAILBOX_FLAG_KEEP_LOCKED) != 0);
 
 		if (lost_files) {
 			/* lost some files from new/, see if thery're in cur/ */
--- a/src/lib-storage/index/mbox/mbox-file.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-file.c	Thu Jul 30 19:30:15 2009 -0400
@@ -95,7 +95,8 @@
 	struct utimbuf buf;
 	struct stat st;
 
-	if (mbox->ibox.recent_flags_count > 0 && mbox->ibox.keep_recent &&
+	if (mbox->ibox.recent_flags_count > 0 &&
+	    (mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0 &&
 	    mbox->mbox_fd != -1 && !mbox->ibox.backend_readonly) {
 		/* we've seen recent messages which we want to keep recent.
 		   keep file's atime lower than mtime so \Marked status
--- a/src/lib-storage/index/mbox/mbox-sync-private.h	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-sync-private.h	Thu Jul 30 19:30:15 2009 -0400
@@ -138,6 +138,7 @@
 	unsigned int first_mail_crlf_expunged:1;
 
 	/* global flags: */
+	unsigned int keep_recent:1;
 	unsigned int delay_writes:1;
 	unsigned int renumber_uids:1;
 	unsigned int moved_offsets:1;
--- a/src/lib-storage/index/mbox/mbox-sync-update.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-sync-update.c	Thu Jul 30 19:30:15 2009 -0400
@@ -382,7 +382,7 @@
 {
 	i_assert(ctx->mail.uid != 0 || ctx->mail.pseudo);
 
-	if (!ctx->sync_ctx->mbox->ibox.keep_recent)
+	if (!ctx->sync_ctx->keep_recent)
 		ctx->mail.flags &= ~MAIL_RECENT;
 
 	mbox_sync_update_status(ctx);
@@ -412,7 +412,7 @@
 	    (ctx->mail.flags & MAIL_RECENT) != 0) {
 		ctx->mail.flags = (ctx->mail.flags & ~STATUS_FLAGS_MASK) |
 			(mail->flags & STATUS_FLAGS_MASK);
-		if (!ctx->sync_ctx->mbox->ibox.keep_recent)
+		if (!ctx->sync_ctx->keep_recent)
                         ctx->mail.flags &= ~MAIL_RECENT;
 		mbox_sync_update_status(ctx);
 	}
--- a/src/lib-storage/index/mbox/mbox-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -157,7 +157,7 @@
 
 	if ((mail_ctx->mail.flags & MAIL_RECENT) != 0 &&
 	    !mail_ctx->mail.pseudo) {
-		if (!sync_ctx->mbox->ibox.keep_recent) {
+		if (!sync_ctx->keep_recent) {
 			/* need to add 'O' flag to Status-header */
 			mail_ctx->need_rewrite = TRUE;
 		}
@@ -913,7 +913,7 @@
 		return 1;
 
 	if (sync_ctx->hdr->first_recent_uid <= next_uid &&
-	    !sync_ctx->mbox->ibox.keep_recent) {
+	    !sync_ctx->keep_recent) {
 		/* we'll need to rewrite Status: O headers */
 		return 1;
 	}
@@ -922,7 +922,7 @@
 
 	if (sync_ctx->hdr->first_recent_uid < sync_ctx->hdr->next_uid &&
 	    (uid > sync_ctx->hdr->first_recent_uid || uid == 0) &&
-	    !sync_ctx->mbox->ibox.keep_recent) {
+	    !sync_ctx->keep_recent) {
 		/* we'll need to rewrite Status: O headers */
 		uid = sync_ctx->hdr->first_recent_uid;
 	}
@@ -1469,7 +1469,7 @@
 	}
 	mail_index_view_close(&view);
 
-	first_recent_uid = !sync_ctx->mbox->ibox.keep_recent ?
+	first_recent_uid = !sync_ctx->keep_recent ?
 		sync_ctx->next_uid : sync_ctx->last_nonrecent_uid + 1;
 	if (sync_ctx->hdr->first_recent_uid < first_recent_uid) {
 		mail_index_update_header(sync_ctx->t,
@@ -1771,7 +1771,7 @@
 	}
 
 	sync_flags = 0;
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 	if ((flags & MBOX_SYNC_REWRITE) != 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY;
@@ -1792,7 +1792,7 @@
 		return ret;
 	}
 
-	if (!mbox->ibox.keep_recent) {
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0) {
 		/* see if we need to drop recent flags */
 		sync_ctx.hdr = mail_index_get_header(sync_view);
 		if (sync_ctx.hdr->first_recent_uid < sync_ctx.hdr->next_uid)
@@ -1813,6 +1813,8 @@
 
 	memset(&sync_ctx, 0, sizeof(sync_ctx));
 	sync_ctx.mbox = mbox;
+	sync_ctx.keep_recent =
+		(mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) != 0;
 
 	sync_ctx.hdr = mail_index_get_header(sync_view);
 	sync_ctx.from_line = str_new(default_pool, 256);
@@ -1888,7 +1890,7 @@
 	sync_ctx.t = NULL;
 	sync_ctx.index_sync_ctx = NULL;
 
-	if (ret == 0 && mbox->mbox_fd != -1 && mbox->ibox.keep_recent &&
+	if (ret == 0 && mbox->mbox_fd != -1 && sync_ctx.keep_recent &&
 	    !sync_ctx.mbox->ibox.backend_readonly) {
 		/* try to set atime back to its original value */
 		struct utimbuf buf;
--- a/src/lib-storage/index/raw/raw-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/lib-storage/index/raw/raw-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -18,7 +18,7 @@
 
 	sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY |
 		MAIL_INDEX_SYNC_FLAG_REQUIRE_CHANGES;
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
 	ret = mail_index_sync_begin(mbox->ibox.index, &index_sync_ctx,
--- a/src/plugins/virtual/virtual-sync.c	Thu Jul 30 19:19:42 2009 -0400
+++ b/src/plugins/virtual/virtual-sync.c	Thu Jul 30 19:30:15 2009 -0400
@@ -1448,7 +1448,7 @@
 
 	index_sync_flags = MAIL_INDEX_SYNC_FLAG_FLUSH_DIRTY |
 		MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES;
-	if (!mbox->ibox.keep_recent)
+	if ((mbox->ibox.box.flags & MAILBOX_FLAG_KEEP_RECENT) == 0)
 		index_sync_flags |= MAIL_INDEX_SYNC_FLAG_DROP_RECENT;
 
 	ret = mail_index_sync_begin(ctx->index, &ctx->index_sync_ctx,