[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