Use HTTP timeout from config

This commit is contained in:
9seconds
2021-03-12 17:00:52 +03:00
parent 1f862027af
commit 2cc81219b1
3 changed files with 12 additions and 8 deletions
+4 -3
View File
@@ -40,6 +40,7 @@ func (b *base) ReadConfig(path, version string) error {
func (b *base) makeNetwork(conf *config.Config, version string) (network.Network, error) {
tcpTimeout := conf.Network.Timeout.TCP.Value(network.DefaultTimeout)
idleTimeout := conf.Network.Timeout.Idle.Value(network.DefaultIdleTimeout)
httpTimeout := conf.Network.Timeout.HTTP.Value(network.DefaultHTTPTimeout)
dohIP := conf.Network.DOHIP.Value(net.ParseIP(network.DefaultDOHHostname)).String()
bufferSize := conf.TCPBuffer.Value(network.DefaultBufferSize)
userAgent := "mtg/" + version
@@ -59,14 +60,14 @@ func (b *base) makeNetwork(conf *config.Config, version string) (network.Network
switch len(proxyURLs) {
case 0:
return network.NewNetwork(baseDialer, userAgent, dohIP, idleTimeout)
return network.NewNetwork(baseDialer, userAgent, dohIP, httpTimeout, idleTimeout)
case 1:
socksDialer, err := network.NewSocks5Dialer(baseDialer, proxyURLs[0])
if err != nil {
return nil, fmt.Errorf("cannot build socks5 dialer: %w", err)
}
return network.NewNetwork(socksDialer, userAgent, dohIP, idleTimeout)
return network.NewNetwork(socksDialer, userAgent, dohIP, httpTimeout, idleTimeout)
}
socksDialer, err := network.NewLoadBalancedSocks5Dialer(baseDialer, proxyURLs)
@@ -74,5 +75,5 @@ func (b *base) makeNetwork(conf *config.Config, version string) (network.Network
return nil, fmt.Errorf("cannot build socks5 dialer: %w", err)
}
return network.NewNetwork(socksDialer, userAgent, dohIP, idleTimeout)
return network.NewNetwork(socksDialer, userAgent, dohIP, httpTimeout, idleTimeout)
}
+2 -3
View File
@@ -11,6 +11,7 @@ import (
const (
DefaultTimeout = 10 * time.Second
DefaultIdleTimeout = time.Minute
DefaultHTTPTimeout = 10 * time.Second
DefaultBufferSize = 4096
ProxyDialerOpenThreshold = 5
@@ -18,9 +19,7 @@ const (
ProxyDialerResetFailuresTimeout = 10 * time.Second
DefaultDOHHostname = "9.9.9.9"
DNSTimeout = 5 * time.Second
HTTPTimeout = 10 * time.Second
DNSTimeout = 5 * time.Second
)
var (
+6 -2
View File
@@ -27,6 +27,7 @@ type network struct {
dialer Dialer
dns doh.Resolver
idleTimeout time.Duration
httpTimeout time.Duration
userAgent string
}
@@ -123,10 +124,12 @@ func (n *network) MakeHTTPClient(dialFunc DialFunc) *http.Client {
dialFunc = n.DialContext
}
return makeHTTPClient(n.userAgent, HTTPTimeout, dialFunc)
return makeHTTPClient(n.userAgent, n.httpTimeout, dialFunc)
}
func NewNetwork(dialer Dialer, userAgent, dohHostname string, idleTimeout time.Duration) (Network, error) {
func NewNetwork(dialer Dialer,
userAgent, dohHostname string,
httpTimeout, idleTimeout time.Duration) (Network, error) {
switch {
case idleTimeout < 0:
return nil, fmt.Errorf("timeout should be positive number %s", idleTimeout)
@@ -141,6 +144,7 @@ func NewNetwork(dialer Dialer, userAgent, dohHostname string, idleTimeout time.D
return &network{
dialer: dialer,
idleTimeout: idleTimeout,
httpTimeout: httpTimeout,
userAgent: userAgent,
dns: doh.Resolver{
Host: dohHostname,