From 97ef6b1a3d451058697e30af0c2934f22cd2aadc Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 24 Oct 2021 15:03:13 +0200 Subject: [PATCH] Fix retry handling --- cmd/dumper.go | 14 ++++++++------ cmd/soc/main.go | 12 +++++++----- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/cmd/dumper.go b/cmd/dumper.go index 98f7ca39a..9bfc74995 100644 --- a/cmd/dumper.go +++ b/cmd/dumper.go @@ -70,12 +70,14 @@ func (d *dumper) Dump(name string, v interface{}) { // wait up to 1m for the vehicle to wakeup start := time.Now() - for soc, err = v.SoC(); err != nil && errors.Is(err, api.ErrMustRetry); { - if time.Since(start) > time.Minute { - err = api.ErrTimeout - } else { - fmt.Fprint(w, ".") - time.Sleep(3 * time.Second) + for err = api.ErrMustRetry; err != nil && errors.Is(err, api.ErrMustRetry); { + if soc, err = v.SoC(); err != nil { + if time.Since(start) > time.Minute { + err = api.ErrTimeout + } else { + fmt.Fprint(w, ".") + time.Sleep(3 * time.Second) + } } } diff --git a/cmd/soc/main.go b/cmd/soc/main.go index 0a4c78c20..b41e0082f 100644 --- a/cmd/soc/main.go +++ b/cmd/soc/main.go @@ -80,11 +80,13 @@ func main() { var err error start := time.Now() - for soc, err = v.SoC(); err != nil && matchesError(err, api.ErrMustRetry); { - if time.Since(start) > time.Minute { - err = api.ErrTimeout - } else { - time.Sleep(5 * time.Second) + for err = api.ErrMustRetry; err != nil && matchesError(err, api.ErrMustRetry); { + if soc, err = v.SoC(); err != nil { + if time.Since(start) > time.Minute { + err = api.ErrTimeout + } else { + time.Sleep(5 * time.Second) + } } }