]> Cypherpunks repositories - gostls13.git/commit
net/http: make Transport.RoundTrip return raw Conn.Read error on peek failure
authorBrad Fitzpatrick <bradfitz@golang.org>
Fri, 22 Jul 2016 22:51:05 +0000 (22:51 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 26 Jul 2016 05:28:06 +0000 (05:28 +0000)
commitea2376fcea0be75c856ebd199c0ad0f98192d406
tree5cc82bb4b7a9bc367c499d246b45d42798958966
parent67f799c42cbe5fa667dbad0139a98728624cbf4b
net/http: make Transport.RoundTrip return raw Conn.Read error on peek failure

From at least Go 1.4 to Go 1.6, Transport.RoundTrip would return the
error value from net.Conn.Read directly when the initial Read (1 byte
Peek) failed while reading the HTTP response, if a request was
outstanding. While never a documented or tested promise, Go 1.7 changed the
behavior (starting at https://golang.org/cl/23160).

This restores the old behavior and adds a test (but no documentation
promises yet) while keeping the fix for spammy logging reported in #15446.

This looks larger than it is: it just changes errServerClosedConn from
a variable to a type, where the type preserves the underlying
net.Conn.Read error, for unwrapping later in Transport.RoundTrip.

Fixes #16465

Change-Id: I6fa018991221e93c0cfe3e4129cb168fbd98bd27
Reviewed-on: https://go-review.googlesource.com/25153
Reviewed-by: Andrew Gerrand <adg@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/net/http/transport.go
src/net/http/transport_internal_test.go
src/net/http/transport_test.go