istream-header-filter.c revision 0989e8ba44ec35dc9322e424b5213b96596319e7
3157f61431f19e01173e2e0d270c28af86dc97aaTimo Sirainen/* Copyright (c) 2003-2015 Dovecot authors, see the included COPYING file */
3157f61431f19e01173e2e0d270c28af86dc97aaTimo Sirainen const char **headers;
3157f61431f19e01173e2e0d270c28af86dc97aaTimo Sirainenheader_filter_callback *null_header_filter_callback = NULL;
3157f61431f19e01173e2e0d270c28af86dc97aaTimo Sirainenstatic ssize_t i_stream_header_filter_read(struct istream_private *stream);
3157f61431f19e01173e2e0d270c28af86dc97aaTimo Sirainenstatic void i_stream_header_filter_destroy(struct iostream_private *stream)
cbb79ea1b1a49255c6edc46409a544666b22788fTimo Sirainen message_parse_header_deinit(&mstream->hdr_ctx);
cbb79ea1b1a49255c6edc46409a544666b22788fTimo Sirainen if (array_is_created(&mstream->match_change_lines))
cbb79ea1b1a49255c6edc46409a544666b22788fTimo Sirainenread_mixed(struct header_filter_istream *mstream, size_t body_highwater_size)
cbb79ea1b1a49255c6edc46409a544666b22788fTimo Sirainen const unsigned char *data;
3157f61431f19e01173e2e0d270c28af86dc97aaTimo Sirainen data = i_stream_get_data(mstream->istream.parent, &pos);
3157f61431f19e01173e2e0d270c28af86dc97aaTimo Sirainen mstream->istream.istream.eof = mstream->istream.parent->eof;
return ret;
return ret;
return FALSE;
return ret;
bool matched;
int hdr_ret;
NULL, 0);
&hdr)) > 0) {
if (!matched) {
if (hdr_ret < 0) {
if (hdr_ret == 0) {
return ret;
if (ret == 0) {
return ret;
static ssize_t
const unsigned char *data;
bool last_lf;
else if (size > 0)
return ret;
return ret;
return ret;
if (v_offset == 0) {
static void ATTR_NORETURN
struct istream *
const char *const *headers,
unsigned int headers_count,
int ret;
for (i = j = 0; i < headers_count; i++) {
if (ret == 0) {