Mercurial > dovecot > core-2.2
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; }