changeset 5344:da77f5dd7854 HEAD

We didn't always expunge deleted mailboxes from mail index.
author Timo Sirainen <tss@iki.fi>
date Fri, 16 Mar 2007 02:18:13 +0200
parents cdf39128dd91
children 063c892d0439
files src/lib-index/mailbox-list-index-sync.c
diffstat 1 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mailbox-list-index-sync.c	Fri Mar 16 01:30:35 2007 +0200
+++ b/src/lib-index/mailbox-list-index-sync.c	Fri Mar 16 02:18:13 2007 +0200
@@ -639,6 +639,7 @@
 	struct mailbox_list_record *recs;
 	const struct mailbox_list_sync_record *sync_recs;
 	unsigned int i, j, count;
+	uint32_t seq;
 
 	i_assert(sync_dir->offset != 0);
 
@@ -668,8 +669,17 @@
 			i_assert(j < dir->count);
 		}
 
-		if (!sync_recs[i].seen)
+		if (!sync_recs[i].seen) {
 			recs[j].deleted = TRUE;
+
+			/* expunge from mail index */
+			if (mail_index_lookup_uid_range(ctx->mail_view,
+							sync_recs[i].uid,
+							sync_recs[i].uid,
+							&seq, &seq) == 0 &&
+			    seq != 0)
+				mail_index_expunge(ctx->trans, seq);
+		}
 	}
 	if (ctx->index->mmap_disable) {
 		uoff_t offset, old_offset;