From 2f73b7a35f9e27e35facfb9c29afe55f2fbea20d Mon Sep 17 00:00:00 2001 From: crn4 Date: Thu, 19 Jun 2025 16:45:49 +0200 Subject: [PATCH] added logging for blocked peers, removed map size --- management/server/grpcserver.go | 9 +++++++++ management/server/loginfilter.go | 8 ++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/management/server/grpcserver.go b/management/server/grpcserver.go index aa8721a9d..b79e20a59 100644 --- a/management/server/grpcserver.go +++ b/management/server/grpcserver.go @@ -6,6 +6,7 @@ import ( "fmt" "net" "net/netip" + "os" "strings" "sync" "time" @@ -48,6 +49,8 @@ type GRPCServer struct { ephemeralManager *EphemeralManager peerLocks sync.Map authManager auth.Manager + + logBlockedPeers bool } // NewServer creates a new Management server @@ -77,6 +80,8 @@ func NewServer( } } + logBlockedPeers := os.Getenv("NB_LOG_BLOCKED_PEERS") == "true" + return &GRPCServer{ wgKey: key, // peerKey -> event channel @@ -88,6 +93,7 @@ func NewServer( authManager: authManager, appMetrics: appMetrics, ephemeralManager: ephemeralManager, + logBlockedPeers: logBlockedPeers, }, nil } @@ -146,6 +152,9 @@ func (s *GRPCServer) Sync(req *proto.EncryptedMessage, srv proto.ManagementServi if s.appMetrics != nil { s.appMetrics.GRPCMetrics().CountSyncRequestBlocked() } + if s.logBlockedPeers { + log.WithContext(ctx).Warnf("peer %s with meta hash %d is blocked from syncing", peerKey.String(), metahashed) + } return internalStatus.ErrPeerAlreadyLoggedIn } diff --git a/management/server/loginfilter.go b/management/server/loginfilter.go index e93fdb9a3..62d93658f 100644 --- a/management/server/loginfilter.go +++ b/management/server/loginfilter.go @@ -9,8 +9,7 @@ import ( ) const ( - loginFilterSize = 100_000 // Size of the login filter map, making it large enough for a future - filterTimeout = 5 * time.Minute // Duration to secure the previous login information in the filter + filterTimeout = 5 * time.Minute // Duration to secure the previous login information in the filter reconnTreshold = 5 * time.Minute blockDuration = 10 * time.Minute // Duration for which a user is banned after exceeding the reconnection limit @@ -18,7 +17,6 @@ const ( ) type config struct { - loginFilterSize int filterTimeout time.Duration reconnTreshold time.Duration blockDuration time.Duration @@ -41,7 +39,6 @@ type metahash struct { func initCfg() *config { return &config{ - loginFilterSize: loginFilterSize, filterTimeout: filterTimeout, reconnTreshold: reconnTreshold, blockDuration: blockDuration, @@ -55,7 +52,7 @@ func newLoginFilter() *loginFilter { func newLoginFilterWithCfg(cfg *config) *loginFilter { return &loginFilter{ - logged: make(map[string]metahash, cfg.loginFilterSize), + logged: make(map[string]metahash), cfg: cfg, } } @@ -118,5 +115,4 @@ func metaHash(meta nbpeer.PeerSystemMeta, pubip string) uint64 { h.Write([]byte(pubip)) return h.Sum64() - }