diff --git a/api/client.go b/api/client.go index 72a0130..e8e0e97 100644 --- a/api/client.go +++ b/api/client.go @@ -79,6 +79,10 @@ type Client interface { Do(context.Context, *http.Request) (*http.Response, []byte, error) } +type closeIdler interface { + CloseIdleConnections() +} + // NewClient returns a new Client. // // It is safe to use the returned Client from multiple goroutines. @@ -99,6 +103,10 @@ func NewClient(cfg Config) (Client, error) { }, nil } +func ClientCloseIdler(cl Client) { + cl.(closeIdler).CloseIdleConnections() +} + type httpClient struct { endpoint *url.URL client http.Client @@ -118,6 +126,10 @@ func (c *httpClient) URL(ep string, args map[string]string) *url.URL { return &u } +func (c *httpClient) CloseIdleConnections() { + c.client.CloseIdleConnections() +} + func (c *httpClient) Do(ctx context.Context, req *http.Request) (*http.Response, []byte, error) { if ctx != nil { req = req.WithContext(ctx)