http2: enable HTTP/2 in wrap configureTransport The go1.27 wrap implementation of ConfigureTransport is a no-op, and ConfigureTransports only registers the protocol with net/http; neither enables HTTP/2 on the transport or initializes TLSClientConfig. The pre-wrapping transport.go did both. As a result, callers that enable HTTP/2 on a transport with a custom TLSClientConfig or dialer (where net/http does not enable HTTP/2 automatically) send requests over HTTP/1 to an HTTP/2 server. Without "h2" in NextProtos this is a silent downgrade to HTTP/1.1; with it, the connection negotiates h2 at the TLS layer but is read by the HTTP/1 transport, failing with "net/http: HTTP/1.x transport connection broken: malformed HTTP response". This is the client-side counterpart of the server-side fix in CL 782940. configureTransport now delegates to configureTransports, which ensures a non-nil TLSClientConfig and enables net/http's native HTTP/2 via Transport.Protocols. TestConfigureTransport is gated to the legacy build (!(go1.27 && !http2legacy)) and does not compile into the wrapper build, which is why this regressed silently. The new transport_configure_test.go is untagged and exercises both ConfigureTransport and ConfigureTransports under the legacy and wrap builds. Fixes golang/go#79778 Change-Id: Ibc27bced8679fcb3baa7953bad12315da07535fb Reviewed-on: https://go-review.googlesource.com/c/net/+/785900 Reviewed-by: Nicholas Husin <husin@google.com> Reviewed-by: Damien Neil <dneil@google.com> Auto-Submit: Damien Neil <dneil@google.com> LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Nicholas Husin <nsh@golang.org>
This repository holds supplementary Go networking packages.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://go.dev/doc/contribute.
The git repository is https://go.googlesource.com/net.
The main issue tracker for the net repository is located at https://go.dev/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.