diff options
| author | Adnan Maolood <[email protected]> | 2021-03-20 13:41:53 -0400 |
|---|---|---|
| committer | Adnan Maolood <[email protected]> | 2021-03-20 13:41:53 -0400 |
| commit | 3dca29eb41f96b7d9e7bf82527fd249fc13d999a (patch) | |
| tree | 9276049f1db901eefda2613d8dad9aff33727870 | |
| parent | fs: Fix empty media type for directory index pages (diff) | |
| download | go-gemini-3dca29eb41f96b7d9e7bf82527fd249fc13d999a.tar.xz go-gemini-3dca29eb41f96b7d9e7bf82527fd249fc13d999a.zip | |
response: Don't use bufReadCloser
| -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() |