dovecot-2.2: lib-mail: Fixed istream-header-filter when callback...

dovecot at dovecot.org dovecot at dovecot.org
Mon Nov 16 12:48:25 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/1146e005bd75
changeset: 19369:1146e005bd75
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Nov 16 14:46:40 2015 +0200
description:
lib-mail: Fixed istream-header-filter when callback excluded multiple headers.
This only affected pop3-migration plugin.

diffstat:

 src/lib-mail/istream-header-filter.c      |  3 ++-
 src/lib-mail/test-istream-header-filter.c |  9 +++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diffs (38 lines):

diff -r 923935a77ca8 -r 1146e005bd75 src/lib-mail/istream-header-filter.c
--- a/src/lib-mail/istream-header-filter.c	Mon Nov 16 14:16:00 2015 +0200
+++ b/src/lib-mail/istream-header-filter.c	Mon Nov 16 14:46:40 2015 +0200
@@ -220,7 +220,8 @@
 					  mstream->context);
 			if (matched != orig_matched &&
 			    !mstream->headers_edited) {
-				i_array_init(&mstream->match_change_lines, 8);
+				if (!array_is_created(&mstream->match_change_lines))
+					i_array_init(&mstream->match_change_lines, 8);
 				array_append(&mstream->match_change_lines,
 					     &mstream->cur_line, 1);
 			}
diff -r 923935a77ca8 -r 1146e005bd75 src/lib-mail/test-istream-header-filter.c
--- a/src/lib-mail/test-istream-header-filter.c	Mon Nov 16 14:16:00 2015 +0200
+++ b/src/lib-mail/test-istream-header-filter.c	Mon Nov 16 14:46:40 2015 +0200
@@ -12,16 +12,17 @@
 		struct message_header_line *hdr,
 		bool *matched, void *context ATTR_UNUSED)
 {
-	if (hdr != NULL && hdr->name_offset == 0) {
-		/* drop first header */
+	if (hdr != NULL && (hdr->name_offset == 0 ||
+			    strcmp(hdr->name, "X-Drop") == 0)) {
+		/* drop 1) first header, 2) X-Drop header */
 		*matched = TRUE;
 	}
 }
 
 static void test_istream_filter(void)
 {
-	static const char *exclude_headers[] = { "Subject", "To", NULL };
-	const char *input = "From: foo\nFrom: abc\nTo: bar\nSubject: plop\n\nhello world\n";
+	static const char *exclude_headers[] = { "Subject", "To", "X-Drop", NULL };
+	const char *input = "From: foo\nFrom: abc\nTo: bar\nSubject: plop\nX-Drop: 1\n\nhello world\n";
 	const char *output = "From: abc\n\nhello world\n";
 	struct istream *istream, *filter, *filter2;
 	unsigned int i, input_len = strlen(input);


More information about the dovecot-cvs mailing list