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) } }