From 888923c6cefac6b04d442cafc1a8c97053e7dd49 Mon Sep 17 00:00:00 2001 From: Sergey Kisil Date: Thu, 30 Nov 2023 15:01:53 +0300 Subject: [PATCH] v1.5.13 --- CHANGELOG.md | 7 ++----- client.go | 15 ++++++--------- legacy-client.go | 12 +++++++----- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f326172..7a90a29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,4 @@ -## Version 1.5.12 +## Version 1.5.13 ### Bugfix -- Fix unhandled error in do() method for client and legacy-client - - - +- Fix EOF error by closing request diff --git a/client.go b/client.go index 30433f4..7929dd5 100644 --- a/client.go +++ b/client.go @@ -140,25 +140,22 @@ func (dc *DecortClient) do(req *http.Request) (*http.Response, error) { req.Header.Add("Authorization", "bearer "+dc.cfg.Token) req.Header.Set("Accept", "application/json") - // var resp *http.Response - // var err error buf, _ := io.ReadAll(req.Body) - // for i := uint64(0); i < dc.cfg.Retries; i++ { - // req = req.Clone(req.Context()) req.Body = io.NopCloser(bytes.NewBuffer(buf)) resp, err := dc.client.Do(req) + req.Close = true if err != nil || resp == nil { - if strings.Contains(err.Error(),"connection reset by peer") { + if strings.Contains(err.Error(), "connection reset by peer") { resp.Body.Close() for i := uint64(0); i < dc.cfg.Retries; i++ { - time.Sleep(5 *time.Second) + time.Sleep(5 * time.Second) resp, err = dc.client.Do(req) - if strings.Contains(err.Error(),"connection reset by peer") { + if strings.Contains(err.Error(), "connection reset by peer") { resp.Body.Close() continue } else if err == nil { - break + break } else if err != nil { return nil, err } @@ -174,6 +171,6 @@ func (dc *DecortClient) do(req *http.Request) (*http.Response, error) { respBytes, _ := io.ReadAll(resp.Body) err = fmt.Errorf("%s", respBytes) resp.Body.Close() - + return nil, fmt.Errorf("could not execute request: %w", err) } diff --git a/legacy-client.go b/legacy-client.go index bdbcd3e..c8fab77 100644 --- a/legacy-client.go +++ b/legacy-client.go @@ -145,17 +145,18 @@ func (ldc *LegacyDecortClient) do(req *http.Request) (*http.Response, error) { // req = req.Clone(req.Context()) req.Body = io.NopCloser(bytes.NewBuffer(buf)) resp, err := ldc.client.Do(req) + req.Close = true if err != nil || resp == nil { - if strings.Contains(err.Error(),"connection reset by peer") { + if strings.Contains(err.Error(), "connection reset by peer") { resp.Body.Close() for i := uint64(0); i < ldc.cfg.Retries; i++ { - time.Sleep(5 *time.Second) + time.Sleep(5 * time.Second) resp, err = ldc.client.Do(req) - if strings.Contains(err.Error(),"connection reset by peer") { + if strings.Contains(err.Error(), "connection reset by peer") { resp.Body.Close() continue } else if err == nil { - break + break } else if err != nil { return nil, err } @@ -171,6 +172,7 @@ func (ldc *LegacyDecortClient) do(req *http.Request) (*http.Response, error) { respBytes, _ := io.ReadAll(resp.Body) err = fmt.Errorf("%s", respBytes) resp.Body.Close() - + // } + return nil, fmt.Errorf("could not execute request: %w", err) }