From: Timo Sirainen Date: Thu, 19 Sep 2013 21:20:19 +0000 (+0300) Subject: istream-chain/concat/seekable: When child stream fails, copy its error to ourself. X-Git-Tag: 2.2.6~49 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2c42748505ef4aed83ff59b34e50ed5606900c86;p=thirdparty%2Fdovecot%2Fcore.git istream-chain/concat/seekable: When child stream fails, copy its error to ourself. --- diff --git a/src/lib/istream-chain.c b/src/lib/istream-chain.c index 1e5f0ba258..409793951a 100644 --- a/src/lib/istream-chain.c +++ b/src/lib/istream-chain.c @@ -203,6 +203,10 @@ static ssize_t i_stream_chain_read(struct istream_private *stream) if (ret == -1) { if (link->stream->stream_errno != 0) { + io_stream_set_error(&stream->iostream, + "read(%s) failed: %s", + i_stream_get_name(link->stream), + i_stream_get_error(link->stream)); stream->istream.stream_errno = link->stream->stream_errno; return -1; diff --git a/src/lib/istream-concat.c b/src/lib/istream-concat.c index f2f71af1a7..5fb45abda3 100644 --- a/src/lib/istream-concat.c +++ b/src/lib/istream-concat.c @@ -133,6 +133,10 @@ static ssize_t i_stream_concat_read(struct istream_private *stream) return ret; if (ret == -1 && cstream->cur_input->stream_errno != 0) { + io_stream_set_error(&cstream->istream.iostream, + "read(%s) failed: %s", + i_stream_get_name(cstream->cur_input), + i_stream_get_error(cstream->cur_input)); stream->istream.stream_errno = cstream->cur_input->stream_errno; return -1; diff --git a/src/lib/istream-seekable.c b/src/lib/istream-seekable.c index cf59138fa4..0cb3dbe0f6 100644 --- a/src/lib/istream-seekable.c +++ b/src/lib/istream-seekable.c @@ -139,6 +139,10 @@ static ssize_t read_more(struct seekable_istream *sstream) while ((ret = i_stream_read(sstream->cur_input)) == -1) { if (sstream->cur_input->stream_errno != 0) { + io_stream_set_error(&sstream->istream.iostream, + "read(%s) failed: %s", + i_stream_get_name(sstream->cur_input), + i_stream_get_error(sstream->cur_input)); sstream->istream.istream.stream_errno = sstream->cur_input->stream_errno; return -1;