From 9226c0abda0902e2c4f053a4c9d1042e688efa53 Mon Sep 17 00:00:00 2001 From: bad Date: Sat, 16 Oct 2021 22:44:14 +0200 Subject: [PATCH] Fix client id assignment --- session/session.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/session/session.go b/session/session.go index d4d4f8b..fe826a4 100644 --- a/session/session.go +++ b/session/session.go @@ -55,11 +55,15 @@ func (s *Session) Connect(req ConnectionRequest) { s.updateExpireTimer(req.ConnectPakcet.Properties.SessionExpiryInterval.Value) - if req.ConnectPakcet.ClientId != nil { + if req.ConnectPakcet.ClientId == nil { if s.ClientID == nil { s.ClientID = genClientID() } connAck.Properties.AssignedClientIdentifier.Value = s.ClientID + } else if s.ClientID != nil && s.ClientID != req.ConnectPakcet.ClientId { + panic(fmt.Errorf("Session %s connect called with a connect packet with an ID: %s", *s.ClientID, *req.ConnectPakcet.ClientId)) + } else { + s.ClientID = req.ConnectPakcet.ClientId } true := byte(1)