dovecot-2.0-sslstream: mbox: Fixed setting initial explicit uidv...

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 13 02:55:56 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0-sslstream/rev/b0cdefe35909
changeset: 10238:b0cdefe35909
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Oct 30 14:40:01 2009 -0400
description:
mbox: Fixed setting initial explicit uidvalidity/uidnext on mailbox creation.

diffstat:

1 file changed, 15 insertions(+)
src/lib-storage/index/mbox/mbox-sync.c |   15 +++++++++++++++

diffs (32 lines):

diff -r 51618f48242b -r b0cdefe35909 src/lib-storage/index/mbox/mbox-sync.c
--- a/src/lib-storage/index/mbox/mbox-sync.c	Fri Oct 30 13:52:24 2009 -0400
+++ b/src/lib-storage/index/mbox/mbox-sync.c	Fri Oct 30 14:40:01 2009 -0400
@@ -1200,6 +1200,16 @@ static int mbox_write_pseudo(struct mbox
 
 	i_assert(sync_ctx->write_fd != -1);
 
+	if (sync_ctx->mbox->sync_hdr_update != NULL) {
+		const struct mailbox_update *update =
+			sync_ctx->mbox->sync_hdr_update;
+
+		if (update->uid_validity != 0)
+			sync_ctx->base_uid_validity = update->uid_validity;
+		if (update->min_next_uid != 0)
+			sync_ctx->base_uid_last = update->min_next_uid-1;
+	}
+
 	uid_validity = sync_ctx->base_uid_validity != 0 ?
 		sync_ctx->base_uid_validity : sync_ctx->hdr->uid_validity;
 	i_assert(uid_validity != 0);
@@ -1351,6 +1361,11 @@ static int mbox_sync_handle_eof_updates(
 
                 sync_ctx->expunged_space = 0;
 		mbox_sync_file_updated(sync_ctx, FALSE);
+	} else {
+		if (file_size == 0 && sync_ctx->mbox->sync_hdr_update != NULL) {
+			if (mbox_write_pseudo(sync_ctx) < 0)
+				return -1;
+		}
 	}
 	return 0;
 }


More information about the dovecot-cvs mailing list