aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdnan Maolood <[email protected]>2021-03-20 13:41:53 -0400
committerAdnan Maolood <[email protected]>2021-03-20 13:41:53 -0400
commit3dca29eb41f96b7d9e7bf82527fd249fc13d999a (patch)
tree9276049f1db901eefda2613d8dad9aff33727870
parentfs: Fix empty media type for directory index pages (diff)
downloadgo-gemini-3dca29eb41f96b7d9e7bf82527fd249fc13d999a.tar.xz
go-gemini-3dca29eb41f96b7d9e7bf82527fd249fc13d999a.zip
response: Don't use bufReadCloser
-rw-r--r--io.go28
-rw-r--r--response.go6
2 files changed, 5 insertions, 29 deletions
diff --git a/io.go b/io.go
index 3b9e540..d9b59eb 100644
--- a/io.go
+++ b/io.go
@@ -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()