changeset 6544:68c8a6ddde12 HEAD

Fixes
author Timo Sirainen <tss@iki.fi>
date Tue, 09 Oct 2007 22:48:09 +0300
parents 2d0b59aeb41a
children 699c4c193ffc
files src/lib/istream-crlf.c
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/istream-crlf.c	Tue Oct 09 17:30:07 2007 +0300
+++ b/src/lib/istream-crlf.c	Tue Oct 09 22:48:09 2007 +0300
@@ -35,11 +35,15 @@
 	size_t i, dest, size;
 	ssize_t ret;
 
-	ret = i_stream_read(cstream->input);
-	if (ret <= 0 && ret != -2) {
-		stream->istream.stream_errno = cstream->input->stream_errno;
-		stream->istream.eof = cstream->input->eof;
-		return ret;
+	data = i_stream_get_data(cstream->input, &size);
+	if (size <= stream->pos) {
+		ret = i_stream_read(cstream->input);
+		if (ret <= 0 && (ret != -2 || stream->skip == 0)) {
+			stream->istream.stream_errno =
+				cstream->input->stream_errno;
+			stream->istream.eof = cstream->input->eof;
+			return ret;
+		}
 	}
 
 	data = i_stream_get_data(cstream->input, &size);