in proxymode/proxymode.go [48:82]
func NewProxyMode(logger *zap.Logger, options ProxyOptions) (*ProxyMode, error) {
var pm ProxyMode
pm.options = options
pm.logger = logger
if !options.Enabled {
return &pm, nil
}
pm.httpClient = &retryablehttp.Client{
HTTPClient: &http.Client{
Timeout: 10 * time.Second,
Transport: &http.Transport{
MaxIdleConns: 100,
MaxIdleConnsPerHost: 100,
IdleConnTimeout: 90 * time.Second,
},
},
Logger: withZapLoggerAdapter(logger),
RetryWaitMin: 1 * time.Second,
RetryWaitMax: 15 * time.Second,
RetryMax: 4,
CheckRetry: proxyRetryPolicy,
Backoff: retryablehttp.DefaultBackoff,
}
var err error
pm.destinationURL, err = url.Parse(pm.options.ProxyTo)
if err != nil {
return nil, fmt.Errorf("can't create proxy destination URL: %w", err)
}
pm.resolver = &proxyResolver{destinationURL: *pm.destinationURL}
return &pm, nil
}