From d8757dca7232a5a3d4f01403d3f836caafafefc9 Mon Sep 17 00:00:00 2001 From: Ingo Oeser Date: Mon, 7 Jul 2014 23:37:45 +0200 Subject: [PATCH 1/2] Add myself as author --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index f3c62e178..54637535c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -18,6 +18,7 @@ DisposaBoy Frederick Mayle Gustavo Kristic Hanno Braun +Ingo Oeser James Harr Jian Zhen Julien Schmidt From d4547c68c62e227701d9dbdcf11c6468d9ba0a89 Mon Sep 17 00:00:00 2001 From: Ingo Oeser Date: Mon, 7 Jul 2014 23:33:43 +0200 Subject: [PATCH 2/2] use io.ReadAtLeast instead of reimplementing it This also returns the correct error (io.UnexpectedEOF), if we didn't get what we want. --- buffer.go | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/buffer.go b/buffer.go index 794ac3099..90aa38a5c 100644 --- a/buffer.go +++ b/buffer.go @@ -51,21 +51,9 @@ func (b *buffer) fill(need int) error { b.idx = 0 - for { - n, err := b.rd.Read(b.buf[b.length:]) - b.length += n - - if err == nil { - if b.length < need { - continue - } - return nil - } - if b.length >= need && err == io.EOF { - return nil - } - return err - } + n, err := io.ReadAtLeast(b.rd, b.buf[b.length:], need-b.length) + b.length += n + return err } // returns next N bytes from buffer.