diff options
| -rw-r--r-- | io.go | 28 | ||||
| -rw-r--r-- | response.go | 6 |
2 files changed, 5 insertions, 29 deletions
@@ -1,7 +1,6 @@ package gemini import ( - "bufio" "context" "io" ) @@ -75,30 +74,3 @@ func (nopReadCloser) Read(p []byte) (int, error) { func (nopReadCloser) Close() error { return nil } - -type bufReadCloser struct { - br *bufio.Reader // used until empty - io.ReadCloser -} - -func newBufReadCloser(br *bufio.Reader, rc io.ReadCloser) io.ReadCloser { - body := &bufReadCloser{ReadCloser: rc} - if br.Buffered() != 0 { - body.br = br - } - return body -} - -func (b *bufReadCloser) Read(p []byte) (n int, err error) { - if b.br != nil { - if n := b.br.Buffered(); len(p) > n { - p = p[:n] - } - n, err = b.br.Read(p) - if b.br.Buffered() == 0 { - b.br = nil - } - return n, err - } - return b.ReadCloser.Read(p) -} diff --git a/response.go b/response.go index 48d2e53..359e719 100644 --- a/response.go +++ b/response.go @@ -81,7 +81,11 @@ func ReadResponse(r io.ReadCloser) (*Response, error) { resp.Meta = string(meta) if resp.Status.Class() == StatusSuccess { - resp.Body = newBufReadCloser(br, r) + type readCloser struct { + io.Reader + io.Closer + } + resp.Body = readCloser{br, r} } else { resp.Body = nopReadCloser{} r.Close() |