From 19df92369ec7e9e68bb29e3bc776e0c8d7a6f5a2 Mon Sep 17 00:00:00 2001 From: andig Date: Thu, 14 Dec 2023 19:54:14 +0100 Subject: [PATCH] Renault: fix non-POST requests broken due to #11106 --- vehicle/renault/kamereon/api.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/vehicle/renault/kamereon/api.go b/vehicle/renault/kamereon/api.go index 7c542524a..226698f6a 100644 --- a/vehicle/renault/kamereon/api.go +++ b/vehicle/renault/kamereon/api.go @@ -58,14 +58,24 @@ func (v *API) request_(uri string, body io.Reader) (Response, error) { } func (v *API) request(uri string, body io.Reader) (Response, error) { - var body2 bytes.Buffer - body1 := io.TeeReader(body, &body2) + if body != nil { + b, err := io.ReadAll(body) + if err != nil { + return Response{}, err + } + // read from buffer + body = bytes.NewReader(b) + } - res, err := v.request_(uri, body1) + res, err := v.request_(uri, body) // repeat auth if error if err != nil { if err = v.login(); err == nil { - res, err = v.request_(uri, &body2) + if body != nil { + // rewind body + body.(*bytes.Reader).Seek(0, io.SeekStart) + } + res, err = v.request_(uri, body) } }