gatus/client/client.go

48 lines
948 B
Go
Raw Normal View History

package client
import (
"crypto/tls"
"net"
"net/http"
"time"
)
var (
secureHttpClient *http.Client
insecureHttpClient *http.Client
)
2020-10-23 21:58:59 +02:00
// GetHttpClient returns the shared HTTP client
func GetHttpClient(insecure bool) *http.Client {
if insecure {
if insecureHttpClient == nil {
insecureHttpClient = &http.Client{
Timeout: time.Second * 10,
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
},
}
}
return insecureHttpClient
} else {
if secureHttpClient == nil {
secureHttpClient = &http.Client{
Timeout: time.Second * 10,
}
}
return secureHttpClient
}
}
2020-10-23 21:58:59 +02:00
// CanCreateConnectionToTcpService checks whether a connection can be established with a TCP service
func CanCreateConnectionToTcpService(address string) bool {
conn, err := net.DialTimeout("tcp", address, 5*time.Second)
if err != nil {
return false
}
_ = conn.Close()
return true
}