• Brad Fitzpatrick's avatar
    net/http: clean up the Client redirect code, document Body.Close rules more · aecfcd82
    Brad Fitzpatrick authored
    Issue #8633 (and #9134) noted that we didn't document the rules about
    closing the Response.Body when Client.Do returned both a non-nil
    *Response and a non-nil error (which can only happen when the user's
    CheckRedirect returns an error).
    
    In the process of investigating, I cleaned this code up a bunch, but
    no user-visible behavior should have changed, except perhaps some
    better error messages in some cases.
    
    It turns out it's always been the case that when a CheckRedirect error
    occurs, the Response.Body is already closed. Document that.
    
    And the new code makes that more obvious too.
    
    Fixes #8633
    
    Change-Id: Ibc40cc786ad7fc4e0cf470d66bb559c3b931684d
    Reviewed-on: https://go-review.googlesource.com/21364
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
    aecfcd82
Name
Last commit
Last update
..
cgi Loading commit data...
cookiejar Loading commit data...
fcgi Loading commit data...
httptest Loading commit data...
httputil Loading commit data...
internal Loading commit data...
pprof Loading commit data...
testdata Loading commit data...
client.go Loading commit data...
client_test.go Loading commit data...
clientserver_test.go Loading commit data...
cookie.go Loading commit data...
cookie_test.go Loading commit data...
doc.go Loading commit data...
example_test.go Loading commit data...
export_test.go Loading commit data...
filetransport.go Loading commit data...
filetransport_test.go Loading commit data...
fs.go Loading commit data...
fs_test.go Loading commit data...
h2_bundle.go Loading commit data...
header.go Loading commit data...
header_test.go Loading commit data...
http.go Loading commit data...
http_test.go Loading commit data...
jar.go Loading commit data...
lex.go Loading commit data...
lex_test.go Loading commit data...
main_test.go Loading commit data...
method.go Loading commit data...
npn_test.go Loading commit data...
proxy_test.go Loading commit data...
race.go Loading commit data...
range_test.go Loading commit data...
readrequest_test.go Loading commit data...
request.go Loading commit data...
request_test.go Loading commit data...
requestwrite_test.go Loading commit data...
response.go Loading commit data...
response_test.go Loading commit data...
responsewrite_test.go Loading commit data...
serve_test.go Loading commit data...
server.go Loading commit data...
sniff.go Loading commit data...
sniff_test.go Loading commit data...
status.go Loading commit data...
transfer.go Loading commit data...
transfer_test.go Loading commit data...
transport.go Loading commit data...
transport_test.go Loading commit data...
triv.go Loading commit data...