mirror of
https://github.com/golang/go
synced 2024-11-18 08:14:41 -07:00
net/http: remove invalid checks of Request.Proto* for outgoing requests
The net/http package has long documented that Request.ProtoMajor and Request.ProtoMinor are ignored for outgoing requests (HTTP/1.1 or HTTP/2 is always used, never HTTP/1.0). There was one part in the code that was actually checking 1.0 vs 1.1, but it appears to have been harmless. Remove it. Fixes #18407 Change-Id: I362ed6c47ca2de7a2fbca917ed3e866273cfe41f Reviewed-on: https://go-review.googlesource.com/45155 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
cfae35efa5
commit
a48998beb5
@ -349,18 +349,6 @@ func (r *Request) ProtoAtLeast(major, minor int) bool {
|
||||
r.ProtoMajor == major && r.ProtoMinor >= minor
|
||||
}
|
||||
|
||||
// protoAtLeastOutgoing is like ProtoAtLeast, but is for outgoing
|
||||
// requests (see issue 18407) where these fields aren't supposed to
|
||||
// matter. As a minor fix for Go 1.8, at least treat (0, 0) as
|
||||
// matching HTTP/1.1 or HTTP/1.0. Only HTTP/1.1 is used.
|
||||
// TODO(bradfitz): ideally remove this whole method. It shouldn't be used.
|
||||
func (r *Request) protoAtLeastOutgoing(major, minor int) bool {
|
||||
if r.ProtoMajor == 0 && r.ProtoMinor == 0 && major == 1 && minor <= 1 {
|
||||
return true
|
||||
}
|
||||
return r.ProtoAtLeast(major, minor)
|
||||
}
|
||||
|
||||
// UserAgent returns the client's User-Agent, if sent in the request.
|
||||
func (r *Request) UserAgent() string {
|
||||
return r.Header.Get("User-Agent")
|
||||
|
@ -99,13 +99,13 @@ func newTransferWriter(r interface{}) (t *transferWriter, err error) {
|
||||
t.TransferEncoding = rr.TransferEncoding
|
||||
t.Header = rr.Header
|
||||
t.Trailer = rr.Trailer
|
||||
atLeastHTTP11 = rr.protoAtLeastOutgoing(1, 1)
|
||||
t.Body = rr.Body
|
||||
t.BodyCloser = rr.Body
|
||||
t.ContentLength = rr.outgoingLength()
|
||||
if t.ContentLength < 0 && len(t.TransferEncoding) == 0 && atLeastHTTP11 && t.shouldSendChunkedRequestBody() {
|
||||
if t.ContentLength < 0 && len(t.TransferEncoding) == 0 && t.shouldSendChunkedRequestBody() {
|
||||
t.TransferEncoding = []string{"chunked"}
|
||||
}
|
||||
atLeastHTTP11 = true // Transport requests are always 1.1 or 2.0
|
||||
case *Response:
|
||||
t.IsResponse = true
|
||||
if rr.Request != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user