mstream->headers = headers_count == 0 ? NULL :
p_new(mstream->pool, const char *, headers_count);
- for (i = 0; i < headers_count; i++)
+ for (i = 0; i < headers_count; i++) {
+ i_assert(i == 0 ||
+ strcmp(mstream->headers[i-1], headers[i]) < 0);
mstream->headers[i] = p_strdup(mstream->pool, headers[i]);
+ }
mstream->headers_count = headers_count;
mstream->hdr_buf = buffer_create_dynamic(mstream->pool, 1024);
static void test_istream_filter(void)
{
- static const char *exclude_headers[] = { "To", NULL };
- const char *input = "From: foo\nFrom: abc\nTo: bar\n\nhello world\n";
+ static const char *exclude_headers[] = { "Subject", "To", NULL };
+ const char *input = "From: foo\nFrom: abc\nTo: bar\nSubject: plop\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);
filter = i_stream_create_header_filter(istream,
HEADER_FILTER_EXCLUDE |
HEADER_FILTER_NO_CR,
- exclude_headers, 1,
+ exclude_headers, 2,
filter_callback, NULL);
filter2 = i_stream_create_header_filter(filter,
HEADER_FILTER_EXCLUDE |
HEADER_FILTER_NO_CR,
- exclude_headers, 1,
+ exclude_headers, 2,
null_header_filter_callback, NULL);
i_stream_unref(&filter);
filter = filter2;