aboutsummaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorDamien Neil <dneil@google.com>2024-11-22 17:10:01 -0800
committerGopher Robot <gobot@golang.org>2024-11-25 18:39:27 +0000
commitfb5fa2a839ef0ea9952e47f6d0e05b51a5a51a8d (patch)
treeff2d1adfe2b5e60b5f5dc45fd5fd6d0699a95159 /src/net
parent733df2bc0af0f73d7bc9ee49a0d805b010293212 (diff)
downloadgo-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>
Diffstat (limited to 'src/net')
-rw-r--r--src/net/http/transport.go4
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