diff options
| author | bt <bt@rctt.net> | 2026-05-26 11:37:25 +0200 |
|---|---|---|
| committer | bt <bt@rctt.net> | 2026-05-26 11:38:01 +0200 |
| commit | 5d689490cc90f0698802a01d2d058cfdc382a382 (patch) | |
| tree | 3a7f86aefcaddae34dcc3687af06e87e5d754591 /server | |
| parent | c553d1d38de85cd014f0bd013a474a8e9e4f0e08 (diff) | |
| download | solec-0.5.1.tar.gz solec-0.5.1.zip | |
[daemon] Fix lock after sending a message to offline userv0.5.1
Diffstat (limited to 'server')
| -rw-r--r-- | server/message.go | 3 | ||||
| -rw-r--r-- | server/remote.go | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/server/message.go b/server/message.go index 801a4cf..a529025 100644 --- a/server/message.go +++ b/server/message.go @@ -111,12 +111,13 @@ func (s *Server) handleOutboundMessage(addr core.Addr, msg core.Message) error { func (s *Server) handleUserMessage(addr core.Addr, sender net.Conn, msg core.Message) error { s.usersMu.RLock() + defer s.usersMu.RUnlock() + user, ok := s.users[addr.String()] if !ok { log.Println("user not found") return core.Send(sender, core.Error{core.ErrorNotFound}) } - s.usersMu.RUnlock() return user.Send(sender, msg) } diff --git a/server/remote.go b/server/remote.go index 70e4734..0a782e3 100644 --- a/server/remote.go +++ b/server/remote.go @@ -26,11 +26,12 @@ func (s *Server) handleServerConn(conn net.Conn) { } s.serversMu.RLock() + defer s.serversMu.RUnlock() + if _, ok := s.servers[name]; ok { log.Println("server already connected") return } - s.serversMu.RUnlock() rs := NewRemoteServer(name, conn) s.serversMu.Lock() |
