@@ -35,6 +35,7 @@ const (
3535 NoChunkedEncodingFlag = "no-chunked-encoding"
3636 ProxyAddressFlag = "proxy-address"
3737 ProxyPortFlag = "proxy-port"
38+ Http2OriginFlag = "http2-origin"
3839)
3940
4041const (
@@ -93,6 +94,7 @@ func originRequestFromSingeRule(c *cli.Context) OriginRequestConfig {
9394 var proxyAddress = defaultProxyAddress
9495 var proxyPort uint
9596 var proxyType string
97+ var http2Origin bool
9698 if flag := ProxyConnectTimeoutFlag ; c .IsSet (flag ) {
9799 connectTimeout = config.CustomDuration {Duration : c .Duration (flag )}
98100 }
@@ -136,9 +138,13 @@ func originRequestFromSingeRule(c *cli.Context) OriginRequestConfig {
136138 // Note TUN-3758 , we use Int because UInt is not supported with altsrc
137139 proxyPort = uint (c .Int (flag ))
138140 }
141+ if flag := Http2OriginFlag ; c .IsSet (flag ) {
142+ http2Origin = c .Bool (flag )
143+ }
139144 if c .IsSet (Socks5Flag ) {
140145 proxyType = socksProxy
141146 }
147+
142148 return OriginRequestConfig {
143149 ConnectTimeout : connectTimeout ,
144150 TLSTimeout : tlsTimeout ,
@@ -155,6 +161,7 @@ func originRequestFromSingeRule(c *cli.Context) OriginRequestConfig {
155161 ProxyAddress : proxyAddress ,
156162 ProxyPort : proxyPort ,
157163 ProxyType : proxyType ,
164+ Http2Origin : http2Origin ,
158165 }
159166}
160167
@@ -263,6 +270,8 @@ type OriginRequestConfig struct {
263270 ProxyType string `yaml:"proxyType" json:"proxyType"`
264271 // IP rules for the proxy service
265272 IPRules []ipaccess.Rule `yaml:"ipRules" json:"ipRules"`
273+ // Attempt to connect to origin with HTTP/2
274+ Http2Origin bool `yaml:"http2Origin" json:"http2Origin"`
266275}
267276
268277func (defaults * OriginRequestConfig ) setConnectTimeout (overrides config.OriginRequestConfig ) {
0 commit comments