From 9e8b98840675459d2df7e394e1ddc8585ca29da4 Mon Sep 17 00:00:00 2001 From: Vladimir Mihailenco Date: Fri, 26 Oct 2012 18:21:57 +0300 Subject: [PATCH] Ignore Read error if we read enough data. --- parser.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/parser.go b/parser.go index 4a2a20c6..6553bbd0 100644 --- a/parser.go +++ b/parser.go @@ -73,12 +73,16 @@ func readN(rd reader, n int) ([]byte, error) { r := copy(newBuf, buf) buf = newBuf - for r < n { - n, err := rd.Read(buf[r:]) + for { + nn, err := rd.Read(buf[r:]) + r += nn + if r >= n { + // Ignore error if we read enough. + break + } if err != nil { return nil, err } - r += n } } else if err != nil { return nil, err