cmd/server/main.go | 8 +++++--- internal/version.go | 2 +- diff --git a/cmd/server/main.go b/cmd/server/main.go index b6b72553beee9b38afae7afcc0c6df8df93ffd846bb98f9fbae3c280158658f0..300ce5af17bc87a4264f3fa3380403351656943108b7b9d993042c6628d27b7a 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -409,7 +409,9 @@ slog.Info("unknown", "sid", sid, "from", from) 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 @@ continue } 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 @@ } 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 f454ea5866d033e35b58d627c47d4b70e07fcb278a62b663ebece3b6d9496d1f..bbeb34266c92b611557160a238e0cf0756b43e1bc96752cdda8d1ded75869ac3 100644 --- a/internal/version.go +++ b/internal/version.go @@ -3,7 +3,7 @@ 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