dovecot-2.0: mbox: Fixed setting initial explicit uidvalidity/ui...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Oct 30 20:40:06 EET 2009
details: http://hg.dovecot.org/dovecot-2.0/rev/b0cdefe35909
changeset: 10237: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