Mercurial > dovecot > core-2.2
diff src/lib-mail/istream-header-filter.c @ 2444:881e265febfa HEAD
Fixes for nonblocking streams.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 22 Aug 2004 12:13:50 +0300 |
parents | aa6b874f7515 |
children | f6fef42f01b9 |
line wrap: on
line diff
--- a/src/lib-mail/istream-header-filter.c Sun Aug 22 12:13:22 2004 +0300 +++ b/src/lib-mail/istream-header-filter.c Sun Aug 22 12:13:50 2004 +0300 @@ -202,19 +202,21 @@ stream->buffer = i_stream_get_data(mstream->input, &pos); if (pos <= stream->pos) { - if (i_stream_read(mstream->input) == -2) { + if ((ret = i_stream_read(mstream->input)) == -2) { if (stream->skip == 0) return -2; } stream->istream.eof = mstream->input->eof; stream->buffer = i_stream_get_data(mstream->input, &pos); + } else { + ret = 0; } stream->pos -= stream->skip; stream->skip = 0; - ret = pos <= stream->pos ? -1 : - (ssize_t) (pos - stream->pos); + ret = pos > stream->pos ? (ssize_t)(pos - stream->pos) : + (ret == 0 ? 0 : -1); stream->pos = pos; return ret; }