changeset 16995:df2b27885c9d

dsync: Fix to 128bit GUID syncing
author Timo Sirainen <tss@iki.fi>
date Wed, 20 Nov 2013 22:20:06 +0200
parents fbf77af0233c
children d2e95af17305
files src/doveadm/dsync/dsync-mailbox-import.c
diffstat 1 files changed, 6 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/doveadm/dsync/dsync-mailbox-import.c	Wed Nov 20 21:25:19 2013 +0200
+++ b/src/doveadm/dsync/dsync-mailbox-import.c	Wed Nov 20 22:20:06 2013 +0200
@@ -472,16 +472,17 @@
 {
 	guid_128_t guid_128, change_guid_128;
 
-	if (change->type != DSYNC_MAIL_CHANGE_TYPE_EXPUNGE &&
-	    !importer->mails_use_guid128) {
+	if (change->type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE) {
+		if (guid_128_from_string(change->guid, change_guid_128) < 0)
+			i_unreached();
+	} else if (importer->mails_use_guid128) {
+		mail_generate_guid_128_hash(change->guid, change_guid_128);
+	} else {
 		if (cmp_guid_r != NULL)
 			*cmp_guid_r = change->guid;
 		return strcmp(change->guid, guid) == 0;
 	}
 
-	if (guid_128_from_string(change->guid, change_guid_128) < 0)
-		i_unreached();
-
 	mail_generate_guid_128_hash(guid, guid_128);
 	if (memcmp(change_guid_128, guid_128, GUID_128_SIZE) != 0) {
 		if (cmp_guid_r != NULL) {