Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5160:2141e1f58c04 HEAD
Fixed some wrong "uid-last unexpectedly lost" errors.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 16 Feb 2007 21:01:35 +0200 |
parents | 627a085dac39 |
children | e0ec43583be5 |
files | src/lib-storage/index/mbox/mbox-sync-private.h src/lib-storage/index/mbox/mbox-sync-rewrite.c src/lib-storage/index/mbox/mbox-sync-update.c |
diffstat | 3 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/mbox/mbox-sync-private.h Fri Feb 16 20:43:36 2007 +0200 +++ b/src/lib-storage/index/mbox/mbox-sync-private.h Fri Feb 16 21:01:35 2007 +0200 @@ -81,7 +81,7 @@ uoff_t content_length; size_t hdr_pos[MBOX_HDR_COUNT]; - uint32_t parsed_uid; + uint32_t parsed_uid, last_uid_updated_value; unsigned int last_uid_value_start_pos; unsigned int have_eoh:1;
--- a/src/lib-storage/index/mbox/mbox-sync-rewrite.c Fri Feb 16 20:43:36 2007 +0200 +++ b/src/lib-storage/index/mbox/mbox-sync-rewrite.c Fri Feb 16 21:01:35 2007 +0200 @@ -231,7 +231,7 @@ if (ctx->imapbase_updated) { /* update so a) we don't try to update it later unneededly, b) if we do actually update it, we see the correct value */ - ctx->sync_ctx->base_uid_last = ctx->sync_ctx->next_uid - 1; + ctx->sync_ctx->base_uid_last = ctx->last_uid_updated_value; } }
--- a/src/lib-storage/index/mbox/mbox-sync-update.c Fri Feb 16 20:43:36 2007 +0200 +++ b/src/lib-storage/index/mbox/mbox-sync-update.c Fri Feb 16 21:01:35 2007 +0200 @@ -201,10 +201,11 @@ str_printfa(ctx->header, "%u ", ctx->sync_ctx->base_uid_validity); + ctx->last_uid_updated_value = ctx->sync_ctx->next_uid-1; ctx->last_uid_value_start_pos = str_len(ctx->header) - ctx->hdr_pos[MBOX_HDR_X_IMAPBASE]; ctx->imapbase_updated = TRUE; - str_printfa(ctx->header, "%010u", ctx->sync_ctx->next_uid-1); + str_printfa(ctx->header, "%010u", ctx->last_uid_updated_value); keywords_append_all(ctx, ctx->header); str_append_c(ctx->header, '\n'); @@ -351,9 +352,10 @@ str = t_str_new(200); str_printfa(str, "%u ", sync_ctx->base_uid_validity); + ctx->last_uid_updated_value = sync_ctx->next_uid-1; ctx->last_uid_value_start_pos = str_len(str); ctx->imapbase_updated = TRUE; - str_printfa(str, "%010u", sync_ctx->next_uid - 1); + str_printfa(str, "%010u", ctx->last_uid_updated_value); keywords_append_all(ctx, str); str_append_c(str, '\n');