From d608a8a2297e7a167d5ba3263b771482c6d9c53b Mon Sep 17 00:00:00 2001 From: zarazaex69 Date: Thu, 9 Apr 2026 16:42:10 +0300 Subject: [PATCH] fix(server): Add nil checks and cleanup stale connections --- internal/server/server.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/internal/server/server.go b/internal/server/server.go index c6e5438..ca9b88c 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -131,7 +131,7 @@ func (s *Server) run() error { conn, exists := s.connections[sid] s.connMu.RUnlock() - if exists { + if exists && conn != nil { if _, err := conn.Write(data); err != nil { s.mux.CloseStream(sid) conn.Close() @@ -142,6 +142,11 @@ func (s *Server) run() error { } else { var req ConnectRequest if err := json.Unmarshal(data, &req); err == nil && req.Cmd == "connect" { + s.connMu.Lock() + if oldConn, exists := s.connections[sid]; exists && oldConn != nil { + oldConn.Close() + } + s.connMu.Unlock() go s.handleConnect(sid, req) } } @@ -152,7 +157,7 @@ func (s *Server) run() error { conn, exists := s.connections[sid] s.connMu.RUnlock() - if exists { + if exists && conn != nil { conn.Close() s.connMu.Lock() delete(s.connections, sid)