mirror of
https://github.com/golang/net.git
synced 2026-03-31 18:37:08 +09:00
http2: add ConfigureTransports
The ConfigureTransport function doesn't provide any way to get at the http2 Transport it creates, making it impossible to configure transport parameters such as ReadIdleTimeout. Add a ConfigureTransports function which returns the http2 Transport. The very similar names are unfortunate, but they'll sort next to each other in godoc and the pluralized ConfigureTransports hints at its purpose: it lets you configure both the http and http2 transports. Fixes golang/go#40201. Updates golang/go#41721. Change-Id: I97aa345f369f49462c41d3f60d35660c06c51287 Reviewed-on: https://go-review.googlesource.com/c/net/+/264017 Trust: Damien Neil <dneil@google.com> Trust: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
@@ -154,12 +154,21 @@ func (t *Transport) pingTimeout() time.Duration {
|
||||
|
||||
// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.
|
||||
// It returns an error if t1 has already been HTTP/2-enabled.
|
||||
//
|
||||
// Use ConfigureTransports instead to configure the HTTP/2 Transport.
|
||||
func ConfigureTransport(t1 *http.Transport) error {
|
||||
_, err := configureTransport(t1)
|
||||
_, err := ConfigureTransports(t1)
|
||||
return err
|
||||
}
|
||||
|
||||
func configureTransport(t1 *http.Transport) (*Transport, error) {
|
||||
// ConfigureTransports configures a net/http HTTP/1 Transport to use HTTP/2.
|
||||
// It returns a new HTTP/2 Transport for further configuration.
|
||||
// It returns an error if t1 has already been HTTP/2-enabled.
|
||||
func ConfigureTransports(t1 *http.Transport) (*Transport, error) {
|
||||
return configureTransports(t1)
|
||||
}
|
||||
|
||||
func configureTransports(t1 *http.Transport) (*Transport, error) {
|
||||
connPool := new(clientConnPool)
|
||||
t2 := &Transport{
|
||||
ConnPool: noDialClientConnPool{connPool},
|
||||
|
||||
Reference in New Issue
Block a user