mirror of
https://github.com/gravitl/netmaker.git
synced 2025-02-25 00:24:37 +08:00
send server version in peer update message
This commit is contained in:
parent
67837435ec
commit
fef31752bd
4 changed files with 20 additions and 4 deletions
|
@ -13,6 +13,7 @@ import (
|
|||
"github.com/gravitl/netmaker/logic/acls"
|
||||
"github.com/gravitl/netmaker/logic/acls/nodeacls"
|
||||
"github.com/gravitl/netmaker/models"
|
||||
"github.com/gravitl/netmaker/servercfg"
|
||||
"github.com/seancfoley/ipaddress-go/ipaddr"
|
||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||
)
|
||||
|
@ -239,6 +240,7 @@ func GetPeerUpdate(node *models.Node) (models.PeerUpdate, error) {
|
|||
}
|
||||
|
||||
peerUpdate.Network = node.Network
|
||||
peerUpdate.ServerVersion = servercfg.Version
|
||||
peerUpdate.Peers = peers
|
||||
peerUpdate.ServerAddrs = serverNodeAddresses
|
||||
peerUpdate.DNS = getPeerDNS(node.Network)
|
||||
|
|
|
@ -4,10 +4,11 @@ import "golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
|||
|
||||
// PeerUpdate - struct
|
||||
type PeerUpdate struct {
|
||||
Network string `json:"network" bson:"network" yaml:"network"`
|
||||
ServerAddrs []ServerAddr `json:"serveraddrs" bson:"serveraddrs" yaml:"serveraddrs"`
|
||||
Peers []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"`
|
||||
DNS string `json:"dns" bson:"dns" yaml:"dns"`
|
||||
Network string `json:"network" bson:"network" yaml:"network"`
|
||||
ServerVersion string `json:"serverversion" bson:"serverversion" yaml:"serverversion"`
|
||||
ServerAddrs []ServerAddr `json:"serveraddrs" bson:"serveraddrs" yaml:"serveraddrs"`
|
||||
Peers []wgtypes.PeerConfig `json:"peers" bson:"peers" yaml:"peers"`
|
||||
DNS string `json:"dns" bson:"dns" yaml:"dns"`
|
||||
}
|
||||
|
||||
// KeyUpdate - key update struct
|
||||
|
|
|
@ -39,6 +39,7 @@ type ServerConfig struct {
|
|||
AccessKey string `yaml:"accesskey"`
|
||||
Server string `yaml:"server"`
|
||||
API string `yaml:"api"`
|
||||
Version string `yaml:"version"`
|
||||
}
|
||||
|
||||
// RegisterRequest - struct for registation with netmaker server
|
||||
|
|
|
@ -2,6 +2,7 @@ package functions
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"runtime"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -183,6 +184,17 @@ func UpdatePeers(client mqtt.Client, msg mqtt.Message) {
|
|||
return
|
||||
}
|
||||
insert(peerUpdate.Network, lastPeerUpdate, string(data))
|
||||
// check version
|
||||
log.Println(peerUpdate.ServerVersion)
|
||||
if peerUpdate.ServerVersion != ncutils.Version {
|
||||
logger.Log(0, "server/client version mismatch server: ", peerUpdate.ServerVersion, " client: ", ncutils.Version)
|
||||
}
|
||||
log.Println(cfg.Server.Version)
|
||||
if peerUpdate.ServerVersion != cfg.Server.Version {
|
||||
logger.Log(1, "updating server version")
|
||||
cfg.Server.Version = peerUpdate.ServerVersion
|
||||
config.Write(&cfg, cfg.Network)
|
||||
}
|
||||
|
||||
file := ncutils.GetNetclientPathSpecific() + cfg.Node.Interface + ".conf"
|
||||
err = wireguard.UpdateWgPeers(file, peerUpdate.Peers)
|
||||
|
|
Loading…
Reference in a new issue