TUN-3896: http-service and tunnelstore client use http2 transport.
- If origin services are http2 and https is the service url, http2 transport is preferred. - The tunnelstore client is now upgraded to use http2.
This commit is contained in:
parent
66da530ba3
commit
1cf6ae37eb
19
CHANGES.md
19
CHANGES.md
|
@ -1,5 +1,24 @@
|
||||||
**Experimental**: This is a new format for release notes. The format and availability is subject to change.
|
**Experimental**: This is a new format for release notes. The format and availability is subject to change.
|
||||||
|
|
||||||
|
## UNRELEASED
|
||||||
|
|
||||||
|
### Backward Incompatible Changes
|
||||||
|
|
||||||
|
- none
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
|
||||||
|
- HTTP/2 transport is now always chosen if origin server supports it and the service url scheme is HTTPS.
|
||||||
|
This was previously done in a best attempt manner.
|
||||||
|
|
||||||
|
### Improvements
|
||||||
|
|
||||||
|
- none
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- none
|
||||||
|
|
||||||
## 2021.3.3
|
## 2021.3.3
|
||||||
|
|
||||||
### Improvements
|
### Improvements
|
||||||
|
|
|
@ -15,6 +15,8 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
|
|
||||||
|
"golang.org/x/net/http2"
|
||||||
|
|
||||||
"github.com/cloudflare/cloudflared/hello"
|
"github.com/cloudflare/cloudflared/hello"
|
||||||
"github.com/cloudflare/cloudflared/ipaccess"
|
"github.com/cloudflare/cloudflared/ipaccess"
|
||||||
"github.com/cloudflare/cloudflared/socks"
|
"github.com/cloudflare/cloudflared/socks"
|
||||||
|
@ -287,6 +289,7 @@ func newHTTPTransport(service originService, cfg OriginRequestConfig, log *zerol
|
||||||
httpTransport.DialContext = dialContext
|
httpTransport.DialContext = dialContext
|
||||||
}
|
}
|
||||||
|
|
||||||
|
http2.ConfigureTransport(&httpTransport)
|
||||||
return &httpTransport, nil
|
return &httpTransport, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@ import (
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
|
|
||||||
|
"golang.org/x/net/http2"
|
||||||
|
|
||||||
"github.com/cloudflare/cloudflared/teamnet"
|
"github.com/cloudflare/cloudflared/teamnet"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -247,6 +249,11 @@ func NewRESTClient(baseURL, accountTag, zoneTag, authToken, userAgent string, lo
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to create account level endpoint")
|
return nil, errors.Wrap(err, "failed to create account level endpoint")
|
||||||
}
|
}
|
||||||
|
httpTransport := http.Transport{
|
||||||
|
TLSHandshakeTimeout: defaultTimeout,
|
||||||
|
ResponseHeaderTimeout: defaultTimeout,
|
||||||
|
}
|
||||||
|
http2.ConfigureTransport(&httpTransport)
|
||||||
return &RESTClient{
|
return &RESTClient{
|
||||||
baseEndpoints: &baseEndpoints{
|
baseEndpoints: &baseEndpoints{
|
||||||
accountLevel: *accountLevelEndpoint,
|
accountLevel: *accountLevelEndpoint,
|
||||||
|
@ -256,11 +263,8 @@ func NewRESTClient(baseURL, accountTag, zoneTag, authToken, userAgent string, lo
|
||||||
authToken: authToken,
|
authToken: authToken,
|
||||||
userAgent: userAgent,
|
userAgent: userAgent,
|
||||||
client: http.Client{
|
client: http.Client{
|
||||||
Transport: &http.Transport{
|
Transport: &httpTransport,
|
||||||
TLSHandshakeTimeout: defaultTimeout,
|
Timeout: defaultTimeout,
|
||||||
ResponseHeaderTimeout: defaultTimeout,
|
|
||||||
},
|
|
||||||
Timeout: defaultTimeout,
|
|
||||||
},
|
},
|
||||||
log: log,
|
log: log,
|
||||||
}, nil
|
}, nil
|
||||||
|
|
Loading…
Reference in New Issue