From fbc5bf26bbe1df1e498727f1d654052798d5f383 Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 22 Sep 2024 23:21:35 +0200 Subject: [PATCH] Ocpp: fix duplicate init --- charger/ocpp/cs.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/charger/ocpp/cs.go b/charger/ocpp/cs.go index 565c63f30..af90fe432 100644 --- a/charger/ocpp/cs.go +++ b/charger/ocpp/cs.go @@ -80,12 +80,13 @@ func (cs *CS) RegisterChargepoint(id string, newfun func() *CP, init func(*CP) e cpmu.Lock() defer cpmu.Unlock() - cp, err := cs.ChargepointByID(id) - if err != nil { - cp = newfun() + // already registered? + if cp, err := cs.ChargepointByID(id); err == nil { + return cp, nil } - // should not error + // first time- registration should not error + cp := newfun() if err := cs.register(id, cp); err != nil { return nil, err }