dovecot-2.0: mdbox index rebuild: GUID wasn't kept for messages.

dovecot at dovecot.org dovecot at dovecot.org
Sat Mar 6 14:28:39 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/f7755658257d
changeset: 10852:f7755658257d
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Mar 06 14:28:32 2010 +0200
description:
mdbox index rebuild: GUID wasn't kept for messages.

diffstat:

 src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c |  5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diffs (29 lines):

diff -r 68042df10756 -r f7755658257d src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c
--- a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c	Sat Mar 06 14:08:49 2010 +0200
+++ b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c	Sat Mar 06 14:28:32 2010 +0200
@@ -171,7 +171,7 @@
 		prev_offset = offset;
 
 		guid = dbox_file_metadata_get(file, DBOX_METADATA_GUID);
-		if (guid == NULL) {
+		if (guid == NULL || *guid == '\0') {
 			dbox_file_set_corrupted(file,
 						"Message is missing GUID");
 			ret = 0;
@@ -183,6 +183,7 @@
 		rec->offset = offset;
 		rec->size = file->input->v_offset - offset;
 		mail_generate_guid_128_hash(guid, rec->guid_128);
+		i_assert(!mail_guid_128_is_empty(rec->guid_128));
 		array_append(&ctx->msgs, &rec, 1);
 
 		if (hash_table_lookup(ctx->guid_hash, rec->guid_128) != NULL) {
@@ -389,6 +390,8 @@
 			new_dbox_rec.map_uid = rec->map_uid;
 			mail_index_update_ext(trans, new_seq, mbox->ext_id,
 					      &new_dbox_rec, NULL);
+			mail_index_update_ext(trans, new_seq, mbox->guid_ext_id,
+					      rec->guid_128, NULL);
 		} T_END;
 	}
 }


More information about the dovecot-cvs mailing list