[dovecot-cvs] dovecot/src/lib-mail istream-header-filter.c, 1.9,
1.10 istream-header-filter.h, 1.4, 1.5
cras at dovecot.org
cras at dovecot.org
Sun Aug 22 08:54:56 EEST 2004
Update of /home/cvs/dovecot/src/lib-mail
In directory talvi:/tmp/cvs-serv31163/lib-mail
Modified Files:
istream-header-filter.c istream-header-filter.h
Log Message:
header filter can now optionally use either LF or CRLF linefeeds.
Index: istream-header-filter.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-mail/istream-header-filter.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- istream-header-filter.c 22 Aug 2004 05:47:22 -0000 1.9
+++ istream-header-filter.c 22 Aug 2004 05:54:54 -0000 1.10
@@ -29,6 +29,7 @@
unsigned int header_read:1;
unsigned int filter:1;
+ unsigned int crlf:1;
};
static void _close(struct _iostream *stream __attr_unused__)
@@ -87,7 +88,10 @@
mstream->cur_line++;
if (hdr->eoh) {
- buffer_append(mstream->hdr_buf, "\r\n", 2);
+ if (mstream->crlf)
+ buffer_append(mstream->hdr_buf, "\r\n", 2);
+ else
+ buffer_append_c(mstream->hdr_buf, '\n');
break;
}
@@ -112,7 +116,13 @@
}
buffer_append(mstream->hdr_buf,
hdr->value, hdr->value_len);
- buffer_append(mstream->hdr_buf, "\r\n", 2);
+ if (!hdr->no_newline) {
+ if (mstream->crlf) {
+ buffer_append(mstream->hdr_buf,
+ "\r\n", 2);
+ } else
+ buffer_append_c(mstream->hdr_buf, '\n');
+ }
if (mstream->skip_count >= mstream->hdr_buf->used) {
/* we need more */
@@ -231,7 +241,7 @@
}
struct istream *
-i_stream_create_header_filter(struct istream *input, int filter,
+i_stream_create_header_filter(struct istream *input, int filter, int crlf,
const char *const *headers, size_t headers_count,
header_filter_callback *callback, void *context)
{
@@ -255,6 +265,7 @@
mstream->callback = callback;
mstream->context = context;
mstream->filter = filter;
+ mstream->crlf = crlf;
mstream->istream.iostream.close = _close;
mstream->istream.iostream.destroy = _destroy;
Index: istream-header-filter.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-mail/istream-header-filter.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- istream-header-filter.h 22 Aug 2004 02:58:40 -0000 1.4
+++ istream-header-filter.h 22 Aug 2004 05:54:54 -0000 1.5
@@ -9,7 +9,7 @@
/* NOTE: headers list must be sorted. If filter is TRUE, given headers are
removed from output, otherwise only given headers are included in output. */
struct istream *
-i_stream_create_header_filter(struct istream *input, int filter,
+i_stream_create_header_filter(struct istream *input, int filter, int crlf,
const char *const *headers, size_t headers_count,
header_filter_callback *callback, void *context);
More information about the dovecot-cvs
mailing list