diff --git a/beater/eventstream.go b/beater/eventstream.go index 0dd8eb6e..a4b6f1f4 100644 --- a/beater/eventstream.go +++ b/beater/eventstream.go @@ -160,6 +160,8 @@ func (es *Eventstream) Run() error { logp.Err("Error connecting to API: %v", responseErr) } + defer response.Body.Close() + select { case <-es.done: return nil diff --git a/beater/http.go b/beater/http.go index a8cc7b32..2674b2c8 100644 --- a/beater/http.go +++ b/beater/http.go @@ -5,6 +5,7 @@ import ( "errors" "net/http" "net/url" + "time" "github.com/elastic/beats/libbeat/logp" ) @@ -12,6 +13,8 @@ import ( func requestURL(bt *Icingabeat, method string, URL *url.URL) (*http.Response, error) { transport := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: bt.config.SkipSSLVerify}, + MaxIdleConns: 10, + IdleConnTimeout: 30 * time.Second, } client := &http.Client{ @@ -37,6 +40,7 @@ func requestURL(bt *Icingabeat, method string, URL *url.URL) (*http.Response, er switch response.StatusCode { case 401: err = errors.New("Authentication failed for user " + bt.config.User) + defer response.Body.Close() } return response, err diff --git a/beater/statuspoller.go b/beater/statuspoller.go index 9a5aeb11..1e1d8cf1 100644 --- a/beater/statuspoller.go +++ b/beater/statuspoller.go @@ -128,6 +128,8 @@ func (sp *Statuspoller) Run() error { logp.Err("Error connecting to API: %v", responseErr) } + defer response.Body.Close() + select { case <-sp.done: return nil