influxdb/http/transport.go

52 lines
1.8 KiB
Go
Raw Normal View History

// Shared transports for all clients to prevent leaking connections
package http
import (
"crypto/tls"
"net"
"net/http"
"time"
)
// defaultTransport is the default implementation of Transport and is
// used by traceClient. It establishes network connections as needed
// and caches them for reuse by subsequent calls. It uses HTTP proxies
// as directed by the $HTTP_PROXY and $NO_PROXY (or $http_proxy and
// $no_proxy) environment variables.
// This is the same as http.DefaultTransport.
//
var defaultTransport http.RoundTripper = &http.Transport{
Proxy: http.ProxyFromEnvironment,
DialContext: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
DualStack: true,
}).DialContext,
MaxIdleConns: 100,
IdleConnTimeout: 90 * time.Second,
TLSHandshakeTimeout: 10 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
}
// skipVerifyTransport is the default implementation of Transport and is
// used by traceClient (NewClient with insecure set to true). It establishes network connections as needed
// and caches them for reuse by subsequent calls. It uses HTTP proxies
// as directed by the $HTTP_PROXY and $NO_PROXY (or $http_proxy and
// $no_proxy) environment variables.
// This is the same as http.DefaultTransport but with TLS skip verify.
//
var skipVerifyTransport = &http.Transport{
Proxy: http.ProxyFromEnvironment,
DialContext: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
DualStack: true,
}).DialContext,
MaxIdleConns: 100,
IdleConnTimeout: 90 * time.Second,
TLSHandshakeTimeout: 10 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
// This is the value that changes between this and http.DefaultTransport
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}