dovecot-2.2: dsync: Fixed last-common-uid lookup when local UID ...

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 16 14:51:56 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/4e90a6911b26
changeset: 15779:4e90a6911b26
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Feb 16 14:51:50 2013 +0200
description:
dsync: Fixed last-common-uid lookup when local UID was expunged but remote wasn't.

diffstat:

 src/doveadm/dsync/dsync-mailbox-import.c |  8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diffs (22 lines):

diff -r e49424a3b13e -r 4e90a6911b26 src/doveadm/dsync/dsync-mailbox-import.c
--- a/src/doveadm/dsync/dsync-mailbox-import.c	Sat Feb 16 14:09:42 2013 +0200
+++ b/src/doveadm/dsync/dsync-mailbox-import.c	Sat Feb 16 14:51:50 2013 +0200
@@ -1069,13 +1069,15 @@
 		return FALSE;
 
 	i_assert(local_change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE);
-	if (!dsync_mail_change_guid_equals(local_change, change->guid)) {
+	if (dsync_mail_change_guid_equals(local_change, change->guid))
+		importer->last_common_uid = change->uid;
+	else if (change->type != DSYNC_MAIL_CHANGE_TYPE_EXPUNGE)
+		dsync_mailbox_common_uid_found(importer);
+	else {
 		/* GUID mismatch for two expunged mails. dsync can't update
 		   GUIDs for already expunged messages, so we can't immediately
 		   determine that the rest of the messages are a mismatch. so
 		   for now we'll just skip over this pair. */
-	} else {
-		importer->last_common_uid = change->uid;
 	}
 	return TRUE;
 }


More information about the dovecot-cvs mailing list