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