[dovecot-cvs] dovecot/src/lib-storage/index/mbox
mbox-sync-private.h, 1.51, 1.52 mbox-sync-rewrite.c, 1.48,
1.49 mbox-sync-update.c, 1.33, 1.34
cras at dovecot.org
cras at dovecot.org
Tue Apr 26 17:07:33 EEST 2005
Update of /var/lib/cvs/dovecot/src/lib-storage/index/mbox
In directory talvi:/tmp/cvs-serv17941
Modified Files:
mbox-sync-private.h mbox-sync-rewrite.c mbox-sync-update.c
Log Message:
If uid-last isn't actually updated while rewriting first message, don't
assume it is. Fixes bogus "uid-last changed" errors.
Index: mbox-sync-private.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync-private.h,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- mbox-sync-private.h 23 Apr 2005 15:18:22 -0000 1.51
+++ mbox-sync-private.h 26 Apr 2005 14:07:31 -0000 1.52
@@ -87,6 +87,7 @@
unsigned int dirty:1;
unsigned int uid_broken:1;
unsigned int imapbase_rewrite:1;
+ unsigned int imapbase_updated:1;
};
struct mbox_sync_context {
Index: mbox-sync-rewrite.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- mbox-sync-rewrite.c 22 Apr 2005 20:31:27 -0000 1.48
+++ mbox-sync-rewrite.c 26 Apr 2005 14:07:31 -0000 1.49
@@ -288,8 +288,10 @@
return -1;
}
- if (sync_ctx->dest_first_mail)
+ if (ctx->imapbase_updated) {
+ i_assert(sync_ctx->dest_first_mail);
mbox_sync_first_mail_written(ctx, ctx->hdr_offset + move_diff);
+ }
i_stream_sync(sync_ctx->input);
return 1;
Index: mbox-sync-update.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync-update.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- mbox-sync-update.c 8 Apr 2005 13:13:48 -0000 1.33
+++ mbox-sync-update.c 26 Apr 2005 14:07:31 -0000 1.34
@@ -189,6 +189,7 @@
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);
keywords_append_all(ctx, ctx->header);
@@ -332,6 +333,7 @@
ctx->last_uid_value_start_pos =
str_len(str) - ctx->hdr_pos[MBOX_HDR_X_IMAPBASE];
+ ctx->imapbase_updated = TRUE;
str_printfa(str, "%010u", sync_ctx->next_uid - 1);
keywords_append_all(ctx, str);
More information about the dovecot-cvs
mailing list