From: Timo Sirainen Date: Mon, 18 Jan 2016 12:56:24 +0000 (+0200) Subject: lib-mail: Added message_header_line_write() X-Git-Tag: 2.2.22.rc1~336 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d45a4c7d1df04dd93d57aa8a29b76b55d4905341;p=thirdparty%2Fdovecot%2Fcore.git lib-mail: Added message_header_line_write() --- diff --git a/src/lib-mail/message-header-parser.c b/src/lib-mail/message-header-parser.c index 8cb2bdafaa..449667d750 100644 --- a/src/lib-mail/message-header-parser.c +++ b/src/lib-mail/message-header-parser.c @@ -394,3 +394,18 @@ void message_parse_header(struct istream *input, struct message_size *hdr_size, /* call after the final skipping */ callback(NULL, context); } + +void message_header_line_write(buffer_t *output, + const struct message_header_line *hdr) +{ + if (!hdr->continued) { + buffer_append(output, hdr->name, strlen(hdr->name)); + buffer_append(output, hdr->middle, hdr->middle_len); + } + buffer_append(output, hdr->value, hdr->value_len); + if (!hdr->no_newline) { + if (hdr->crlf_newline) + buffer_append_c(output, '\r'); + buffer_append_c(output, '\n'); + } +} diff --git a/src/lib-mail/message-header-parser.h b/src/lib-mail/message-header-parser.h index 9db49b0b4f..b234026a00 100644 --- a/src/lib-mail/message-header-parser.h +++ b/src/lib-mail/message-header-parser.h @@ -69,4 +69,9 @@ void message_parse_header(struct istream *input, struct message_size *hdr_size, struct message_header_line *hdr, typeof(context))), \ (message_header_callback_t *)callback, context) +/* Write the header line to buffer exactly as it was read, including the + newline. */ +void message_header_line_write(buffer_t *output, + const struct message_header_line *hdr); + #endif