diff --git a/pkg/http/client.go b/pkg/http/client.go index fb8df26..005aa64 100644 --- a/pkg/http/client.go +++ b/pkg/http/client.go @@ -181,6 +181,9 @@ func (r *HTTPClient) Do(req *http.Request) (*http.Response, error) { attempt := 0 for { resp, err = r.client.Do(req) + if err != nil { + defer resp.Body.Close() + } if resp != nil && (resp.StatusCode < http.StatusOK || resp.StatusCode > http.StatusPartialContent) { body, _ := io.ReadAll(resp.Body) if body != nil { @@ -193,9 +196,6 @@ func (r *HTTPClient) Do(req *http.Request) (*http.Response, error) { } } incr := r.getRetryIncr(resp, reqHasRangeHeader, err) - if resp != nil { - resp.Body.Close() - } if incr > 0 { attempt += incr if attempt > r.maxRetries {