Mercurial > dovecot > core-2.2
changeset 2581:b88b34d95c7b HEAD
Seeking was broken if header hadn't been read yet.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 10 Sep 2004 14:44:07 +0300 |
parents | a86d97c69e8f |
children | 39d944735147 |
files | src/lib-mail/istream-header-filter.c |
diffstat | 1 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-mail/istream-header-filter.c Fri Sep 10 14:25:33 2004 +0300 +++ b/src/lib-mail/istream-header-filter.c Fri Sep 10 14:44:07 2004 +0300 @@ -235,6 +235,7 @@ { struct header_filter_istream *mstream = (struct header_filter_istream *)stream; + size_t pos; stream->istream.v_offset = v_offset; stream->skip = stream->pos = 0; @@ -245,6 +246,14 @@ mstream->hdr_ctx = NULL; } + while (!mstream->header_read) { + if (_read(stream) == -1) + break; + + (void)i_stream_get_data(&stream->istream, &pos); + i_stream_skip(&stream->istream, pos); + } + if (v_offset < mstream->header_size.virtual_size) { /* seek into headers. we'll have to re-parse them, use skip_count to set the wanted position */