httputil/reproxy: fix policy transport (#3322)

This commit is contained in:
Caleb Doxsey 2022-05-05 00:32:36 +00:00 committed by GitHub
parent a2d2f34e24
commit 6b663ba53f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 0 deletions

View file

@ -62,6 +62,7 @@ func NewPolicyHTTPTransport(options *Options, policy *Policy, disableHTTP2 bool)
// //
if disableHTTP2 { if disableHTTP2 {
transport.TLSNextProto = map[string]func(authority string, c *tls.Conn) http.RoundTripper{} transport.TLSNextProto = map[string]func(authority string, c *tls.Conn) http.RoundTripper{}
transport.ForceAttemptHTTP2 = false
} }
var tlsClientConfig tls.Config var tlsClientConfig tls.Config
@ -111,6 +112,7 @@ func NewPolicyHTTPTransport(options *Options, policy *Policy, disableHTTP2 bool)
// We avoid setting a custom client config unless we have to as // We avoid setting a custom client config unless we have to as
// if TLSClientConfig is nil, the default configuration is used. // if TLSClientConfig is nil, the default configuration is used.
if isCustomClientConfig { if isCustomClientConfig {
transport.DialTLSContext = nil
transport.TLSClientConfig = &tlsClientConfig transport.TLSClientConfig = &tlsClientConfig
} }
return c.Then(transport) return c.Then(transport)

View file

@ -37,6 +37,13 @@ func TestHTTPTransport(t *testing.T) {
} }
func TestPolicyHTTPTransport(t *testing.T) { func TestPolicyHTTPTransport(t *testing.T) {
originalTransport := http.DefaultTransport
defer func() {
http.DefaultTransport = originalTransport
}()
src := NewStaticSource(&Config{Options: &Options{}})
http.DefaultTransport = NewHTTPTransport(src)
s := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { s := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
})) }))