File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change 4
4
"bytes"
5
5
"io"
6
6
"io/ioutil"
7
+ "net/http"
7
8
)
8
9
9
10
// io.Reader with Read method reset offset when EOF
@@ -42,7 +43,12 @@ type copyReadCloser struct {
42
43
// Second read after EOF
43
44
// copyBuffered --> copy BufReader simple buffer with fix size
44
45
// when BufReader is EOF offset is reset to read again
45
- func NewCopyReadCloser (src io.ReadCloser ) * copyReadCloser {
46
+ func NewCopyReadCloser (src io.ReadCloser ) io.ReadCloser {
47
+ // No copying needed on nil or http.NoBody.
48
+ if src == nil || src == http .NoBody {
49
+ return src
50
+ }
51
+
46
52
buf := & bytes.Buffer {}
47
53
tr := & copyReadCloser {
48
54
copyTemp : buf ,
@@ -56,7 +62,7 @@ func NewCopyReadCloser(src io.ReadCloser) *copyReadCloser {
56
62
return tr
57
63
}
58
64
59
- func (tr * copyReadCloser )Read (p []byte ) (n int , err error ) {
65
+ func (tr * copyReadCloser ) Read (p []byte ) (n int , err error ) {
60
66
n , err = tr .ReadCloser .Read (p )
61
67
if err == io .EOF {
62
68
if tr .copy == nil {
You can’t perform that action at this time.
0 commit comments