From: Sergey Matveev <stargrave@stargrave.org>
Date: Tue, 16 Apr 2024 11:20:57 +0000 (+0300)
Subject: Fixed race problem
X-Git-Tag: v2.1.0~3
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=7eb0f7811acb997bec9e4e6385dea314a39149555300d7ab08477f2a9362b3de;p=vors.git

Fixed race problem
---

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