From 7eb0f7811acb997bec9e4e6385dea314a39149555300d7ab08477f2a9362b3de Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 16 Apr 2024 14:20:57 +0300 Subject: [PATCH] Fixed race problem --- cmd/server/main.go | 8 +++++--- internal/version.go | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/cmd/server/main.go b/cmd/server/main.go index b6b7255..300ce5a 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -409,7 +409,9 @@ func main() { continue } - if from.Port != peer.addr.Port || !from.IP.Equal(peer.addr.IP) { + if peer.addr == nil || + from.Port != peer.addr.Port || + !from.IP.Equal(peer.addr.IP) { slog.Info("wrong addr", "peer", peer.name, "our", peer.addr, @@ -428,7 +430,7 @@ func main() { } peer.mac.Reset() - if _, err = peer.mac.Write(buf[: n-siphash.Size]); err != nil { + if _, err = peer.mac.Write(buf[:n-siphash.Size]); err != nil { log.Fatal(err) } peer.mac.Sum(tag[:0]) @@ -442,7 +444,7 @@ func main() { peer.stats.last = time.Now() for _, p := range peer.room.peers { - if p.sid == sid { + if p.sid == sid || p.addr == nil { continue } p.stats.pktsTx++ diff --git a/internal/version.go b/internal/version.go index f454ea5..bbeb342 100644 --- a/internal/version.go +++ b/internal/version.go @@ -3,7 +3,7 @@ package internal import "runtime" const ( - Version = "2.0.0" + Version = "2.1.0" Warranty = `Copyright (C) 2024 Sergey Matveev This program is free software: you can redistribute it and/or modify -- 2.44.0