changeset 10237:b0cdefe35909 HEAD

mbox: Fixed setting initial explicit uidvalidity/uidnext on mailbox creation.
author Timo Sirainen <tss@iki.fi>
date Fri, 30 Oct 2009 14:40:01 -0400
parents 51618f48242b
children 4ba2db4794ab
files src/lib-storage/index/mbox/mbox-sync.c
diffstat 1 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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 @@
 
 	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 @@
 
                 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;
 }