Fix #146: Alerting causes panic with some providers

This commit is contained in:
TwinProduction
2021-07-29 18:13:37 -04:00
parent 07b1a2eafb
commit cdbc075439
5 changed files with 22 additions and 9 deletions

View File

@ -16,7 +16,10 @@ import (
// GetHTTPClient returns the shared HTTP client
func GetHTTPClient(config *Config) *http.Client {
return config.GetHTTPClient()
if config == nil {
return defaultConfig.getHTTPClient()
}
return config.getHTTPClient()
}
// CanCreateTCPConnection checks whether a connection can be established with a TCP service

View File

@ -6,12 +6,18 @@ import (
)
func TestGetHTTPClient(t *testing.T) {
GetHTTPClient(&Config{
cfg := &Config{
Insecure: false,
IgnoreRedirect: false,
Timeout: 0,
httpClient: nil,
})
}
cfg.ValidateAndSetDefaults()
if GetHTTPClient(cfg) == nil {
t.Error("expected client to not be nil")
}
if GetHTTPClient(nil) == nil {
t.Error("expected client to not be nil")
}
}
func TestPing(t *testing.T) {

View File

@ -47,7 +47,7 @@ func (c *Config) ValidateAndSetDefaults() {
}
// GetHTTPClient return a HTTP client matching the Config's parameters.
func (c *Config) GetHTTPClient() *http.Client {
func (c *Config) getHTTPClient() *http.Client {
if c.httpClient == nil {
c.httpClient = &http.Client{
Timeout: c.Timeout,

View File

@ -6,10 +6,10 @@ import (
"time"
)
func TestConfig_GetHTTPClient(t *testing.T) {
func TestConfig_getHTTPClient(t *testing.T) {
insecureConfig := &Config{Insecure: true}
insecureConfig.ValidateAndSetDefaults()
insecureClient := insecureConfig.GetHTTPClient()
insecureClient := insecureConfig.getHTTPClient()
if !(insecureClient.Transport).(*http.Transport).TLSClientConfig.InsecureSkipVerify {
t.Error("expected Config.Insecure set to true to cause the HTTP client to skip certificate verification")
}
@ -23,7 +23,7 @@ func TestConfig_GetHTTPClient(t *testing.T) {
secureConfig := &Config{IgnoreRedirect: true, Timeout: 5 * time.Second}
secureConfig.ValidateAndSetDefaults()
secureClient := secureConfig.GetHTTPClient()
secureClient := secureConfig.getHTTPClient()
if (secureClient.Transport).(*http.Transport).TLSClientConfig.InsecureSkipVerify {
t.Error("expected Config.Insecure set to false to cause the HTTP client to not skip certificate verification")
}