dovecot-1.0: Searching NOT sequence set with multiple search ran...

dovecot at dovecot.org dovecot at dovecot.org
Sat Sep 22 14:28:24 EEST 2007


details:   http://hg.dovecot.org/dovecot-1.0/rev/d144e54f09e6
changeset: 5408:d144e54f09e6
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Sep 22 14:28:01 2007 +0300
description:
Searching NOT sequence set with multiple search ranges containing either
first or last sequence caused some messages to be skipped.

diffstat:

1 file changed, 10 insertions(+), 6 deletions(-)
src/lib-storage/index/index-search.c |   16 ++++++++++------

diffs (26 lines):

diff -r 69a4d09ea3c0 -r d144e54f09e6 src/lib-storage/index/index-search.c
--- a/src/lib-storage/index/index-search.c	Sun Sep 16 14:49:02 2007 +0300
+++ b/src/lib-storage/index/index-search.c	Sat Sep 22 14:28:01 2007 +0300
@@ -646,12 +646,16 @@ static int search_msgset_fix(struct inde
 			min_seq = set->seq1;
 		if (set->seq2 > max_seq)
 			max_seq = set->seq2;
-	}
-
-	full_set.seq1 = min_seq;
-	full_set.seq2 = max_seq;
-	full_set.next = NULL;
-	update_seqs(&full_set, hdr, seq1_r, seq2_r, not);
+		if (not)
+			update_seqs(set, hdr, seq1_r, seq2_r, TRUE);
+	}
+
+	if (!not) {
+		full_set.seq1 = min_seq;
+		full_set.seq2 = max_seq;
+		full_set.next = NULL;
+		update_seqs(&full_set, hdr, seq1_r, seq2_r, FALSE);
+	}
 	return 0;
 }
 


More information about the dovecot-cvs mailing list