diff --git a/client-middleware/opentracing/go.sum b/client-middleware/opentracing/go.sum index 202acb7d..d9ddc5de 100644 --- a/client-middleware/opentracing/go.sum +++ b/client-middleware/opentracing/go.sum @@ -42,8 +42,8 @@ github.com/go-openapi/swag/typeutils v0.29.1 h1:Nzv9nhnlLCRBPQqfOX+7lB6Guju370or github.com/go-openapi/swag/typeutils v0.29.1/go.mod h1:hxpgDZJVBkBsi/d3MIUosafoFdE5exaQRmVp0zwu3YE= github.com/go-openapi/swag/yamlutils v0.28.0 h1:TV3JXH6DS46KUroDtMLAYHGkdWf5VDq3wVWFirmzROY= github.com/go-openapi/swag/yamlutils v0.28.0/go.mod h1:x0q/yndZHEgk9Rx3DyDqzFUmHy55KTvIZldvF2dTJXs= -github.com/go-openapi/testify/enable/yaml/v2 v2.6.1 h1:Jm+/ze2rMtbD98yen92AhATGLGREDYXG56Xr4gMjEtE= -github.com/go-openapi/testify/enable/yaml/v2 v2.6.1/go.mod h1:YDPnwCRDu38/oJBVMBVXOUDiJ9cIeBHWvfImHaXqnv4= +github.com/go-openapi/testify/enable/yaml/v2 v2.7.0 h1:wPW6YRgx3+SID1yUy/Xwa17L8kFEaEKod2VRbJDZNUs= +github.com/go-openapi/testify/enable/yaml/v2 v2.7.0/go.mod h1:mI1M88etYbc3PhgHsWQK2kwvNwW5aGFqMPbmib+SGIs= github.com/go-openapi/testify/v2 v2.7.0 h1:bycOreEj6wfBvijg3YFogZ/sFjTCDmQnwSodSzHa3X8= github.com/go-openapi/testify/v2 v2.7.0/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= github.com/go-openapi/validate v0.26.3 h1:OkfZgLvLDnGP2hrRGD+42WBiPWWkoHomTJ+IVI+KaDc= diff --git a/client/keepalive.go b/client/keepalive.go index 6b6097d2..da66f355 100644 --- a/client/keepalive.go +++ b/client/keepalive.go @@ -35,6 +35,7 @@ func (k *keepAliveTransport) RoundTrip(r *http.Request) (*http.Response, error) type drainingReadCloser struct { rdr io.ReadCloser seenEOF atomic.Uint32 + discard io.Writer } func (d *drainingReadCloser) Read(p []byte) (n int, err error) { @@ -51,7 +52,11 @@ func (d *drainingReadCloser) Close() error { // If the reader side (a HTTP server) is misbehaving, it still may send // some bytes, but the closer ignores them to keep the underling // connection open. - _, _ = io.Copy(io.Discard, d.rdr) + discard := d.discard + if discard == nil { + discard = io.Discard + } + _, _ = io.Copy(discard, d.rdr) } return d.rdr.Close() } diff --git a/client/keepalive_test.go b/client/keepalive_test.go index 0391fbae..d0c87531 100644 --- a/client/keepalive_test.go +++ b/client/keepalive_test.go @@ -41,13 +41,10 @@ func (c *countingReadCloser) Close() error { func TestDrainingReadCloser(t *testing.T) { rdr := newCountingReader(bytes.NewBufferString("There are many things to do"), false) - prevDisc := io.Discard disc := bytes.NewBuffer(nil) - io.Discard = disc - defer func() { io.Discard = prevDisc }() buf := make([]byte, 5) - ts := &drainingReadCloser{rdr: rdr} + ts := &drainingReadCloser{rdr: rdr, discard: disc} _, err := ts.Read(buf) require.NoError(t, err) require.NoError(t, ts.Close()) @@ -59,13 +56,10 @@ func TestDrainingReadCloser(t *testing.T) { func TestDrainingReadCloser_SeenEOF(t *testing.T) { rdr := newCountingReader(bytes.NewBufferString("There are many things to do"), true) - prevDisc := io.Discard disc := bytes.NewBuffer(nil) - io.Discard = disc - defer func() { io.Discard = prevDisc }() buf := make([]byte, 5) - ts := &drainingReadCloser{rdr: rdr} + ts := &drainingReadCloser{rdr: rdr, discard: disc} _, err := ts.Read(buf) require.NoError(t, err) _, err = ts.Read(nil) diff --git a/docs/examples/go.sum b/docs/examples/go.sum index 6d68fabe..7a951488 100644 --- a/docs/examples/go.sum +++ b/docs/examples/go.sum @@ -47,8 +47,8 @@ github.com/go-openapi/swag/typeutils v0.29.1 h1:Nzv9nhnlLCRBPQqfOX+7lB6Guju370or github.com/go-openapi/swag/typeutils v0.29.1/go.mod h1:hxpgDZJVBkBsi/d3MIUosafoFdE5exaQRmVp0zwu3YE= github.com/go-openapi/swag/yamlutils v0.28.0 h1:TV3JXH6DS46KUroDtMLAYHGkdWf5VDq3wVWFirmzROY= github.com/go-openapi/swag/yamlutils v0.28.0/go.mod h1:x0q/yndZHEgk9Rx3DyDqzFUmHy55KTvIZldvF2dTJXs= -github.com/go-openapi/testify/enable/yaml/v2 v2.6.1 h1:Jm+/ze2rMtbD98yen92AhATGLGREDYXG56Xr4gMjEtE= -github.com/go-openapi/testify/enable/yaml/v2 v2.6.1/go.mod h1:YDPnwCRDu38/oJBVMBVXOUDiJ9cIeBHWvfImHaXqnv4= +github.com/go-openapi/testify/enable/yaml/v2 v2.7.0 h1:wPW6YRgx3+SID1yUy/Xwa17L8kFEaEKod2VRbJDZNUs= +github.com/go-openapi/testify/enable/yaml/v2 v2.7.0/go.mod h1:mI1M88etYbc3PhgHsWQK2kwvNwW5aGFqMPbmib+SGIs= github.com/go-openapi/testify/v2 v2.7.0 h1:bycOreEj6wfBvijg3YFogZ/sFjTCDmQnwSodSzHa3X8= github.com/go-openapi/testify/v2 v2.7.0/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= github.com/go-openapi/validate v0.26.3 h1:OkfZgLvLDnGP2hrRGD+42WBiPWWkoHomTJ+IVI+KaDc=