mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-19 08:46:38 +00:00
select nmap based on peer version
This commit is contained in:
@@ -36,6 +36,10 @@ import (
|
||||
"github.com/netbirdio/netbird/util"
|
||||
)
|
||||
|
||||
const (
|
||||
compactNetworkMapMinVersion = "v0.61.0" // TODO change to real version
|
||||
)
|
||||
|
||||
type Controller struct {
|
||||
repo Repository
|
||||
metrics *metrics
|
||||
@@ -478,6 +482,12 @@ func (c *Controller) getPeerNetworkMapExp(
|
||||
Network: &types.Network{},
|
||||
}
|
||||
}
|
||||
|
||||
peer := account.GetPeer(peerId)
|
||||
if peer != nil && supportsCompactNetworkMap(peer) {
|
||||
return account.GetPeerNetworkMapCompactExp(ctx, peerId, customZone, validatedPeers, metrics)
|
||||
}
|
||||
|
||||
return account.GetPeerNetworkMapExp(ctx, peerId, customZone, validatedPeers, metrics)
|
||||
}
|
||||
|
||||
@@ -618,6 +628,19 @@ func (c *Controller) StartWarmup(ctx context.Context) {
|
||||
|
||||
}
|
||||
|
||||
func supportsCompactNetworkMap(peer *nbpeer.Peer) bool {
|
||||
if peer.Meta.WtVersion == "development" || peer.Meta.WtVersion == "dev" {
|
||||
return true
|
||||
}
|
||||
|
||||
peerVersion := semver.Canonical("v" + peer.Meta.WtVersion)
|
||||
if peerVersion == "" {
|
||||
return false
|
||||
}
|
||||
|
||||
return semver.Compare(peerVersion, compactNetworkMapMinVersion) >= 0
|
||||
}
|
||||
|
||||
// computeForwarderPort checks if all peers in the account have updated to a specific version or newer.
|
||||
// If all peers have the required version, it returns the new well-known port (22054), otherwise returns 0.
|
||||
func computeForwarderPort(peers []*nbpeer.Peer, requiredVersion string) int64 {
|
||||
|
||||
Reference in New Issue
Block a user