/* Yahoo IMAP drops headers with invalid names, while
Yahoo POP3 preserves them. Drop them all. */
*matched = TRUE;
- }
+ } else if (hdr->value_len > 0 &&
+ hdr->value[hdr->value_len-1] == ' ') T_BEGIN {
+ /* Delete trailing whitespace. Zimbra is stripping it
+ away with BODY[HEADER]. */
+ struct message_header_line new_hdr = *hdr;
+ while (new_hdr.value_len > 0 &&
+ new_hdr.value[new_hdr.value_len-1] == ' ')
+ new_hdr.value_len--;
+ new_hdr.crlf_newline = FALSE; /* CRs are stripped */
+ string_t *new_line = t_str_new(128);
+ message_header_line_write(new_line, &new_hdr);
+ i_stream_header_filter_add(input, str_data(new_line),
+ str_len(new_line));
+ *matched = TRUE;
+ } T_END;
}
}
{ "", "da39a3ee5e6b4b0d3255bfef95601890afd80709", FALSE },
{ "\n", "adc83b19e793491b1c6ea0fd8b46cd9f32e592fc", TRUE },
{ "a: b\r\n", "3edb5ce145cf1d1e2413e02b8bed70f1ae3ed105", FALSE },
+ { "a: b \r\n", "3edb5ce145cf1d1e2413e02b8bed70f1ae3ed105", FALSE },
+ { "a: b \r\n", "3edb5ce145cf1d1e2413e02b8bed70f1ae3ed105", FALSE },
+ { "a: b \r\n", "3edb5ce145cf1d1e2413e02b8bed70f1ae3ed105", FALSE },
{ "a: b\r\n\r\n", "d14841695e1d9e2de6625d9222abd149ec821b0d", TRUE },
{ "a: b\r\n\r\r\n", "3edb5ce145cf1d1e2413e02b8bed70f1ae3ed105", FALSE },
{ "a: b\r\n\r\r\nc: d\r\n\r\n", "3edb5ce145cf1d1e2413e02b8bed70f1ae3ed105", TRUE }