diff options
-rw-r--r-- | camel/ChangeLog | 10 | ||||
-rw-r--r-- | camel/camel-data-wrapper.c | 18 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-wrapper.c | 2 |
3 files changed, 14 insertions, 16 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 20904fac03..701114b00a 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,13 @@ +2003-08-21 Jeffrey Stedfast <fejj@ximian.com> + + * camel-data-wrapper.c (decode_to_stream): Don't poke + wrapper->stream directly, use camel_data_wrapper_write_to_stream() + instead as this simplifies things and makes the imap data wrapper + implementation Just Work (tm). + + * providers/imap/camel-imap-wrapper.c: changed prototype of + write_to_stream() to return ssize_t. + 2003-08-20 Jeffrey Stedfast <fejj@ximian.com> * providers/imap/camel-imap-wrapper.c (imap_wrapper_hydrate): Make diff --git a/camel/camel-data-wrapper.c b/camel/camel-data-wrapper.c index 80575c96e8..7230f77d6d 100644 --- a/camel/camel-data-wrapper.c +++ b/camel/camel-data-wrapper.c @@ -176,18 +176,7 @@ decode_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) CamelStream *fstream; ssize_t ret; - if (data_wrapper->stream == NULL) { - g_warning("data_wrapper->stream is NULL in decode_to_stream()"); - return -1; - } - - CAMEL_DATA_WRAPPER_LOCK (data_wrapper, stream_lock); - if (camel_stream_reset (data_wrapper->stream) == -1) { - CAMEL_DATA_WRAPPER_UNLOCK (data_wrapper, stream_lock); - return -1; - } - - fstream = (CamelStream *) camel_stream_filter_new_with_stream (data_wrapper->stream); + fstream = (CamelStream *) camel_stream_filter_new_with_stream (stream); switch (data_wrapper->encoding) { case CAMEL_MIME_PART_ENCODING_BASE64: @@ -216,11 +205,10 @@ decode_to_stream (CamelDataWrapper *data_wrapper, CamelStream *stream) camel_object_unref (filter); } - ret = camel_stream_write_to_stream (fstream, stream); + ret = camel_data_wrapper_write_to_stream (data_wrapper, fstream); + camel_stream_flush (fstream); camel_object_unref (fstream); - CAMEL_DATA_WRAPPER_UNLOCK (data_wrapper, stream_lock); - return ret; } diff --git a/camel/providers/imap/camel-imap-wrapper.c b/camel/providers/imap/camel-imap-wrapper.c index f2f87d5409..2cb07b3012 100644 --- a/camel/providers/imap/camel-imap-wrapper.c +++ b/camel/providers/imap/camel-imap-wrapper.c @@ -43,7 +43,7 @@ static CamelDataWrapperClass *parent_class = NULL; /* Returns the class for a CamelDataWrapper */ #define CDW_CLASS(so) CAMEL_DATA_WRAPPER_CLASS (CAMEL_OBJECT_GET_CLASS(so)) -static int write_to_stream (CamelDataWrapper *imap_wrapper, CamelStream *stream); +static ssize_t write_to_stream (CamelDataWrapper *imap_wrapper, CamelStream *stream); static void camel_imap_wrapper_class_init (CamelImapWrapperClass *camel_imap_wrapper_class) |