From 9b60ff4a1a71c1d9522a2d71e956d0aa7dda2c11 Mon Sep 17 00:00:00 2001 From: Dmitri Dolguikh Date: Mon, 20 Jul 2026 17:10:55 +0200 Subject: [PATCH] return SyncMessageVersion in sql_store.getPeers() Signed-off-by: Dmitri Dolguikh --- management/internals/shared/grpc/server.go | 13 ++++++------- management/server/store/sql_store.go | 8 ++++++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/management/internals/shared/grpc/server.go b/management/internals/shared/grpc/server.go index 69a065892..3b7d62ac7 100644 --- a/management/internals/shared/grpc/server.go +++ b/management/internals/shared/grpc/server.go @@ -46,7 +46,6 @@ import ( "github.com/netbirdio/netbird/management/server/settings" "github.com/netbirdio/netbird/management/server/telemetry" "github.com/netbirdio/netbird/management/server/types" - sharedgrpc "github.com/netbirdio/netbird/shared/management/grpc" "github.com/netbirdio/netbird/shared/management/proto" internalStatus "github.com/netbirdio/netbird/shared/management/status" ) @@ -1024,9 +1023,9 @@ func (s *Server) sendInitialSync(ctx context.Context, peerKey wgtypes.Key, peer var plainResp *proto.SyncResponse - commonSyncMessageVersion := sharedgrpc.HighestCommonSyncMessageVersion( + commonSyncMessageVersion := grpc.HighestCommonSyncMessageVersion( s.perAccountOrGlobalSyncMessageVersions(peer.AccountID), - sharedgrpc.SyncMessageVersionFromConfig(&peer.Meta.SyncMessageVersion)) + grpc.SyncMessageVersionFromConfig(&peer.Meta.SyncMessageVersion)) log.WithContext(ctx). WithFields(log.Fields{ @@ -1035,7 +1034,7 @@ func (s *Server) sendInitialSync(ctx context.Context, peerKey wgtypes.Key, peer "peer_sync_message_version": grpc.SyncMessageVersionFromConfig(&peer.Meta.SyncMessageVersion), }).Debug("common highest sync message version") - if commonSyncMessageVersion == sharedgrpc.ComponentNetworkMap { + if commonSyncMessageVersion == grpc.ComponentNetworkMap { // Capable peer: discard the legacy NetworkMap that SyncAndMarkPeer // computed and recompute the raw components instead. This wastes one // Calculate() call per initial-sync — the component-based wire @@ -1081,11 +1080,11 @@ func (s *Server) sendInitialSync(ctx context.Context, peerKey wgtypes.Key, peer return nil } -func (s *Server) perAccountOrGlobalSyncMessageVersions(accountId string) sharedgrpc.SyncMessageVersion { +func (s *Server) perAccountOrGlobalSyncMessageVersions(accountId string) grpc.SyncMessageVersion { if version, ok := s.config.PerAccountHighestSupportedSyncMessageVersion[accountId]; ok { - return sharedgrpc.SyncMessageVersionFromConfig(&version) + return grpc.SyncMessageVersionFromConfig(&version) } - return sharedgrpc.SyncMessageVersionFromConfig(s.config.HighestSupportedSyncMessageVersion) + return grpc.SyncMessageVersionFromConfig(s.config.HighestSupportedSyncMessageVersion) } // GetDeviceAuthorizationFlow returns a device authorization flow information diff --git a/management/server/store/sql_store.go b/management/server/store/sql_store.go index 7f1ff5008..210abdf32 100644 --- a/management/server/store/sql_store.go +++ b/management/server/store/sql_store.go @@ -1869,7 +1869,7 @@ func (s *SqlStore) getPeers(ctx context.Context, accountID string) ([]nbpeer.Pee meta_kernel_version, meta_network_addresses, meta_system_serial_number, meta_system_product_name, meta_system_manufacturer, meta_environment, meta_flags, meta_files, meta_capabilities, peer_status_last_seen, peer_status_session_started_at, peer_status_connected, peer_status_login_expired, peer_status_requires_approval, location_connection_ip, - location_country_code, location_city_name, location_geo_name_id, proxy_meta_embedded, proxy_meta_cluster, ipv6 + location_country_code, location_city_name, location_geo_name_id, proxy_meta_embedded, proxy_meta_cluster, ipv6, meta_sync_message_version FROM peers WHERE account_id = $1` rows, err := s.pool.Query(ctx, query, accountID) if err != nil { @@ -1891,6 +1891,7 @@ func (s *SqlStore) getPeers(ctx context.Context, accountID string) ([]nbpeer.Pee metaSystemSerialNumber, metaSystemProductName, metaSystemManufacturer sql.NullString locationCountryCode, locationCityName, proxyCluster sql.NullString locationGeoNameID sql.NullInt64 + metaSyncMessageVersion sql.NullInt ) err := row.Scan(&p.ID, &p.AccountID, &p.Key, &ip, &p.Name, &p.DNSLabel, &p.UserID, &p.SSHKey, &sshEnabled, @@ -1900,7 +1901,7 @@ func (s *SqlStore) getPeers(ctx context.Context, accountID string) ([]nbpeer.Pee &metaSystemSerialNumber, &metaSystemProductName, &metaSystemManufacturer, &env, &flags, &files, &capabilities, &peerStatusLastSeen, &peerStatusSessionStartedAt, &peerStatusConnected, &peerStatusLoginExpired, &peerStatusRequiresApproval, &connIP, &locationCountryCode, &locationCityName, &locationGeoNameID, - &proxyEmbedded, &proxyCluster, &ipv6) + &proxyEmbedded, &proxyCluster, &ipv6, &metaSyncMessageVersion) if err == nil { if lastLogin.Valid { @@ -2020,6 +2021,9 @@ func (s *SqlStore) getPeers(ctx context.Context, accountID string) ([]nbpeer.Pee if connIP != nil { _ = json.Unmarshal(connIP, &p.Location.ConnectionIP) } + if metaSyncMessageVersion.Valid { + p.Meta.SyncMessageVersion = metaSyncMessageVersion.Int + } } return p, err })