From: Timo Sirainen Date: Sun, 7 Apr 2013 19:54:48 +0000 (+0300) Subject: ostream-metawrap: Copy parent ostream's errors. X-Git-Tag: 2.2.rc6~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6759ba36f2bac9e83547cfdcf233382a139f1283;p=thirdparty%2Fdovecot%2Fcore.git ostream-metawrap: Copy parent ostream's errors. --- diff --git a/src/lib-fs/ostream-metawrap.c b/src/lib-fs/ostream-metawrap.c index 5e8faf1adb..7a4621ff43 100644 --- a/src/lib-fs/ostream-metawrap.c +++ b/src/lib-fs/ostream-metawrap.c @@ -25,9 +25,12 @@ o_stream_metawrap_sendv(struct ostream_private *stream, const struct const_iovec *iov, unsigned int iov_count) { struct metawrap_ostream *mstream = (struct metawrap_ostream *)stream; + ssize_t ret; o_stream_metawrap_call_callback(mstream); - return o_stream_sendv(stream->parent, iov, iov_count); + if ((ret = o_stream_sendv(stream->parent, iov, iov_count)) < 0) + o_stream_copy_error_from_parent(stream); + return ret; } static off_t @@ -36,9 +39,12 @@ o_stream_metawrap_send_istream(struct ostream_private *_outstream, { struct metawrap_ostream *outstream = (struct metawrap_ostream *)_outstream; + off_t ret; o_stream_metawrap_call_callback(outstream); - return o_stream_send_istream(_outstream->parent, instream); + if ((ret = o_stream_send_istream(_outstream->parent, instream)) < 0) + o_stream_copy_error_from_parent(stream); + return ret; } struct ostream *