mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-09-01 16:01:55 +03:00
Use HTTP timeout from config
This commit is contained in:
+4
-3
@@ -40,6 +40,7 @@ func (b *base) ReadConfig(path, version string) error {
|
|||||||
func (b *base) makeNetwork(conf *config.Config, version string) (network.Network, error) {
|
func (b *base) makeNetwork(conf *config.Config, version string) (network.Network, error) {
|
||||||
tcpTimeout := conf.Network.Timeout.TCP.Value(network.DefaultTimeout)
|
tcpTimeout := conf.Network.Timeout.TCP.Value(network.DefaultTimeout)
|
||||||
idleTimeout := conf.Network.Timeout.Idle.Value(network.DefaultIdleTimeout)
|
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()
|
dohIP := conf.Network.DOHIP.Value(net.ParseIP(network.DefaultDOHHostname)).String()
|
||||||
bufferSize := conf.TCPBuffer.Value(network.DefaultBufferSize)
|
bufferSize := conf.TCPBuffer.Value(network.DefaultBufferSize)
|
||||||
userAgent := "mtg/" + version
|
userAgent := "mtg/" + version
|
||||||
@@ -59,14 +60,14 @@ func (b *base) makeNetwork(conf *config.Config, version string) (network.Network
|
|||||||
|
|
||||||
switch len(proxyURLs) {
|
switch len(proxyURLs) {
|
||||||
case 0:
|
case 0:
|
||||||
return network.NewNetwork(baseDialer, userAgent, dohIP, idleTimeout)
|
return network.NewNetwork(baseDialer, userAgent, dohIP, httpTimeout, idleTimeout)
|
||||||
case 1:
|
case 1:
|
||||||
socksDialer, err := network.NewSocks5Dialer(baseDialer, proxyURLs[0])
|
socksDialer, err := network.NewSocks5Dialer(baseDialer, proxyURLs[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("cannot build socks5 dialer: %w", err)
|
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)
|
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 nil, fmt.Errorf("cannot build socks5 dialer: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return network.NewNetwork(socksDialer, userAgent, dohIP, idleTimeout)
|
return network.NewNetwork(socksDialer, userAgent, dohIP, httpTimeout, idleTimeout)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import (
|
|||||||
const (
|
const (
|
||||||
DefaultTimeout = 10 * time.Second
|
DefaultTimeout = 10 * time.Second
|
||||||
DefaultIdleTimeout = time.Minute
|
DefaultIdleTimeout = time.Minute
|
||||||
|
DefaultHTTPTimeout = 10 * time.Second
|
||||||
DefaultBufferSize = 4096
|
DefaultBufferSize = 4096
|
||||||
|
|
||||||
ProxyDialerOpenThreshold = 5
|
ProxyDialerOpenThreshold = 5
|
||||||
@@ -18,9 +19,7 @@ const (
|
|||||||
ProxyDialerResetFailuresTimeout = 10 * time.Second
|
ProxyDialerResetFailuresTimeout = 10 * time.Second
|
||||||
|
|
||||||
DefaultDOHHostname = "9.9.9.9"
|
DefaultDOHHostname = "9.9.9.9"
|
||||||
|
DNSTimeout = 5 * time.Second
|
||||||
DNSTimeout = 5 * time.Second
|
|
||||||
HTTPTimeout = 10 * time.Second
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ type network struct {
|
|||||||
dialer Dialer
|
dialer Dialer
|
||||||
dns doh.Resolver
|
dns doh.Resolver
|
||||||
idleTimeout time.Duration
|
idleTimeout time.Duration
|
||||||
|
httpTimeout time.Duration
|
||||||
userAgent string
|
userAgent string
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,10 +124,12 @@ func (n *network) MakeHTTPClient(dialFunc DialFunc) *http.Client {
|
|||||||
dialFunc = n.DialContext
|
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 {
|
switch {
|
||||||
case idleTimeout < 0:
|
case idleTimeout < 0:
|
||||||
return nil, fmt.Errorf("timeout should be positive number %s", idleTimeout)
|
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{
|
return &network{
|
||||||
dialer: dialer,
|
dialer: dialer,
|
||||||
idleTimeout: idleTimeout,
|
idleTimeout: idleTimeout,
|
||||||
|
httpTimeout: httpTimeout,
|
||||||
userAgent: userAgent,
|
userAgent: userAgent,
|
||||||
dns: doh.Resolver{
|
dns: doh.Resolver{
|
||||||
Host: dohHostname,
|
Host: dohHostname,
|
||||||
|
|||||||
Reference in New Issue
Block a user