diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2003-03-10 16:42:38 +0000 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2003-03-10 16:42:38 +0000 |
commit | 524d14d8878afb2f11a156e144ee954b07f4a2c9 (patch) | |
tree | d7788fd57962f35d4fbe85d37ad501f2f2894e64 | |
parent | ece0f2b2021b1bfd710075e0c9692206f5039c48 (diff) | |
download | evolution-data-server-524d14d8878afb2f11a156e144ee954b07f4a2c9.tar.gz |
Add a CRLF filter to the output stream to convert any CRLF sequences into
2003-03-05 Jeffrey Stedfast <fejj@ximian.com>
* providers/sendmail/camel-sendmail-transport.c
(sendmail_send_to): Add a CRLF filter to the output stream to
convert any CRLF sequences into plain old line-feeds to work
around a bug in some local transport programs.
-rw-r--r-- | camel/ChangeLog | 7 | ||||
-rw-r--r-- | camel/providers/sendmail/camel-sendmail-transport.c | 11 |
2 files changed, 18 insertions, 0 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index a1eb3c1a3..f1270e39e 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,10 @@ +2003-03-05 Jeffrey Stedfast <fejj@ximian.com> + + * providers/sendmail/camel-sendmail-transport.c + (sendmail_send_to): Add a CRLF filter to the output stream to + convert any CRLF sequences into plain old line-feeds to work + around a bug in some local transport programs. + 2003-02-27 Jeffrey Stedfast <fejj@ximian.com> * camel-stream-filter.c: Add a 'flushed' state variable to the diff --git a/camel/providers/sendmail/camel-sendmail-transport.c b/camel/providers/sendmail/camel-sendmail-transport.c index 7ba567832..f7059198b 100644 --- a/camel/providers/sendmail/camel-sendmail-transport.c +++ b/camel/providers/sendmail/camel-sendmail-transport.c @@ -34,6 +34,8 @@ #include <string.h> #include "camel-sendmail-transport.h" +#include "camel-mime-filter-crlf.h" +#include "camel-stream-filter.h" #include "camel-mime-message.h" #include "camel-data-wrapper.h" #include "camel-stream-fs.h" @@ -88,6 +90,8 @@ sendmail_send_to (CamelTransport *transport, CamelMimeMessage *message, struct _header_raw *header, *savedbcc, *n, *tail; const char *from_addr, *addr, **argv; int i, len, fd[2], nullfd, wstat; + CamelStreamFilter *filter; + CamelMimeFilter *crlf; sigset_t mask, omask; CamelStream *out; pid_t pid; @@ -185,6 +189,13 @@ sendmail_send_to (CamelTransport *transport, CamelMimeMessage *message, /* Parent process. Write the message out. */ close (fd[0]); out = camel_stream_fs_new_with_fd (fd[1]); + filter = camel_stream_filter_new_with_stream (out); + crlf = camel_mime_filter_crlf_new (CAMEL_MIME_FILTER_CRLF_DECODE, CAMEL_MIME_FILTER_CRLF_MODE_CRLF_ONLY); + camel_stream_filter_add (filter, crlf); + camel_object_unref (crlf); + camel_object_unref (out); + + out = (CamelStream *) filter; if (camel_data_wrapper_write_to_stream (CAMEL_DATA_WRAPPER (message), out) == -1 || camel_stream_close (out) == -1) { camel_object_unref (CAMEL_OBJECT (out)); |