Mercurial > dovecot > original-hg > dovecot-1.2
changeset 1860:8da9b7748bd4 HEAD
we didn't sync mbox again after rewriting which left us broken mail offsets.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 05 Nov 2003 00:26:16 +0200 |
parents | 8636c61b3b5a |
children | e42d97a85653 |
files | src/lib-index/mail-index.h src/lib-index/mbox/mbox-rewrite.c src/lib-index/mbox/mbox-sync-full.c |
diffstat | 3 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index.h Tue Nov 04 22:40:58 2003 +0200 +++ b/src/lib-index/mail-index.h Wed Nov 05 00:26:16 2003 +0200 @@ -339,6 +339,7 @@ unsigned int anon_mmap:1; unsigned int mmap_invalidate:1; + unsigned int mbox_rewritten:1; unsigned int opened:1; unsigned int rebuilding:1; unsigned int mail_read_mmaped:1; @@ -368,7 +369,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \ - 0 + 0, 0 #endif /* defaults - same as above but prefixed with mail_index_. */
--- a/src/lib-index/mbox/mbox-rewrite.c Tue Nov 04 22:40:58 2003 +0200 +++ b/src/lib-index/mbox/mbox-rewrite.c Wed Nov 05 00:26:16 2003 +0200 @@ -610,6 +610,9 @@ return TRUE; } + /* kludgy .. but we need to force resyncing */ + index->mbox_rewritten = TRUE; + tmp_fd = -1; input = NULL; failed = TRUE; rewrite = FALSE; do {
--- a/src/lib-index/mbox/mbox-sync-full.c Tue Nov 04 22:40:58 2003 +0200 +++ b/src/lib-index/mbox/mbox-sync-full.c Wed Nov 05 00:26:16 2003 +0200 @@ -329,6 +329,13 @@ failed = !mbox_sync_from_stream(index, input); } + if (index->mbox_rewritten) { + /* rewritten, sync again */ + index->mbox_rewritten = FALSE; + i_stream_seek(input, 0); + failed = !mbox_sync_from_stream(index, input); + } + i_stream_unref(input); }