diff options
| author | Damien Neil <dneil@google.com> | 2024-11-22 17:10:01 -0800 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-11-25 18:39:27 +0000 |
| commit | fb5fa2a839ef0ea9952e47f6d0e05b51a5a51a8d (patch) | |
| tree | ff2d1adfe2b5e60b5f5dc45fd5fd6d0699a95159 | |
| parent | 733df2bc0af0f73d7bc9ee49a0d805b010293212 (diff) | |
| download | go-fb5fa2a839ef0ea9952e47f6d0e05b51a5a51a8d.tar.xz | |
net/http: avoid redundant installation of HTTP/2 support in transport
Previously, we'd skip installing the bundled HTTP/2 support
if Transport.TLSNextProto is non-nil.
With the addition of the Transport.Protocols field, we'll
install HTTP/2 if Protocols contains HTTP2, even if TLSNextProto
is non-nil. However, we shouldn't do so if it already contains an
"h2" entry.
Change-Id: Ib086473bb52f1b76d83b1df961d41360c605832c
Reviewed-on: https://go-review.googlesource.com/c/go/+/631395
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Auto-Submit: Damien Neil <dneil@google.com>
| -rw-r--r-- | src/net/http/transport.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/net/http/transport.go b/src/net/http/transport.go index e2ce4dde3d..41e674188f 100644 --- a/src/net/http/transport.go +++ b/src/net/http/transport.go @@ -412,6 +412,10 @@ func (t *Transport) onceSetNextProtoDefaults() { } } + if _, ok := t.TLSNextProto["h2"]; ok { + // There's an existing HTTP/2 implementation installed. + return + } protocols := t.protocols() if !protocols.HTTP2() && !protocols.UnencryptedHTTP2() { return |
