From 0b0d8fd9f2ebc81e9f1cfff43ffcb8f6195d52bf Mon Sep 17 00:00:00 2001 From: andig Date: Mon, 23 Sep 2024 09:16:13 +0200 Subject: [PATCH] Ocpp: fix duplicate init (#16277) --- 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 dc8f08688b..376fc22e22 100644 --- a/charger/ocpp/cs.go +++ b/charger/ocpp/cs.go @@ -81,12 +81,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 }