Mercurial > dovecot > original-hg > dovecot-1.2
diff src/lib-mail/istream-header-filter.c @ 9006:06bd1266f0c7 HEAD
istreams: Fixed some parent stream seeking issues.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 01 May 2009 14:50:08 -0400 |
parents | b9faf4db2a9f |
children | b1a27ed69e60 |
line wrap: on
line diff
--- a/src/lib-mail/istream-header-filter.c Fri May 01 14:49:08 2009 -0400 +++ b/src/lib-mail/istream-header-filter.c Fri May 01 14:50:08 2009 -0400 @@ -295,7 +295,6 @@ struct header_filter_istream *mstream = (struct header_filter_istream *)stream; ssize_t ret; - size_t pos; if (!mstream->header_read || stream->istream.v_offset < mstream->header_size.virtual_size) { @@ -313,27 +312,7 @@ stream->istream.v_offset - mstream->header_size.virtual_size + mstream->header_size.physical_size); - - stream->pos -= stream->skip; - stream->skip = 0; - - stream->buffer = i_stream_get_data(stream->parent, &pos); - if (pos <= stream->pos) { - if ((ret = i_stream_read(stream->parent)) == -2) { - i_assert(stream->skip != stream->pos); - return -2; - } - stream->istream.stream_errno = stream->parent->stream_errno; - stream->istream.eof = stream->parent->eof; - stream->buffer = i_stream_get_data(stream->parent, &pos); - } else { - ret = 0; - } - - ret = pos > stream->pos ? (ssize_t)(pos - stream->pos) : - (ret == 0 ? 0 : -1); - stream->pos = pos; - return ret; + return i_stream_read_copy_from_parent(&stream->istream); } static void parse_header(struct header_filter_istream *mstream)