remove publish prior to registration with server

This commit is contained in:
Matthew R. Kasun 2022-06-01 08:00:22 -04:00
parent 050da4ea74
commit 9578b72d5e
2 changed files with 16 additions and 33 deletions

View file

@ -42,10 +42,9 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
if cfg.Node.Password == "" {
cfg.Node.Password = logic.GenKey()
}
manualPort := false
//check if ListenPort was set on command line
if cfg.Node.ListenPort != 0 {
cfg.Node.UDPHolePunch = "no"
manualPort = true
}
var trafficPubKey, trafficPrivKey, errT = box.GenerateKey(rand.Reader) // generate traffic keys
if errT != nil {
@ -172,10 +171,6 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
}
logger.Log(1, "node created on remote server...updating configs")
cfg.Node = node
logger.Log(1, "turn on UDP hole punching (dynamic port setting)? "+cfg.Node.UDPHolePunch)
if !manualPort && (cfg.Node.UDPHolePunch == "no") {
setListenPort(cfg)
}
err = config.ModNodeConfig(&cfg.Node)
if err != nil {
return err
@ -199,8 +194,10 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
if cfg.Server.Server == "" {
return errors.New("did not recieve broker address from registration")
}
_ = UpdateLocalListenPort(cfg)
// update server with latest data
if err := PublishNodeUpdate(cfg); err != nil {
logger.Log(0, "failed to publish update for join", err.Error())
}
if cfg.Daemon == "install" || ncutils.IsFreeBSD() {
err = daemon.InstallDaemon(cfg)
@ -229,20 +226,3 @@ func formatName(node models.Node) string {
}
return node.Name
}
func setListenPort(cfg *config.ClientConfig) {
// keep track of the returned listenport value
newListenPort := cfg.Node.ListenPort
var errN error
// get free port based on returned default listen port
cfg.Node.ListenPort, errN = ncutils.GetFreePort(cfg.Node.ListenPort)
if errN != nil {
cfg.Node.ListenPort = newListenPort
logger.Log(1, "Error retrieving port: ", errN.Error())
}
// if newListenPort has been modified to find an available port, publish to server
if cfg.Node.ListenPort != newListenPort {
PublishNodeUpdate(cfg)
}
}

View file

@ -135,14 +135,14 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
return err
}
defer wgclient.Close()
modcfg, err := config.ReadConfig(node.Network)
cfg, err := config.ReadConfig(node.Network)
if err != nil {
return err
}
nodecfg := modcfg.Node
//nodecfg := modcfg.Node
var ifacename string
if nodecfg.Interface != "" {
ifacename = nodecfg.Interface
if cfg.Node.Interface != "" {
ifacename = cfg.Node.Interface
} else if node.Interface != "" {
ifacename = node.Interface
} else {
@ -151,11 +151,14 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
if node.PrimaryAddress() == "" {
return fmt.Errorf("no address to configure")
}
logger.Log(1, "turn on UDP hole punching (dynamic port setting)? "+cfg.Node.UDPHolePunch)
if node.UDPHolePunch == "yes" {
node.ListenPort = 0
} else {
//get available port based on current default
node.ListenPort, err = ncutils.GetFreePort(node.ListenPort)
}
if err := WriteWgConfig(&modcfg.Node, key.String(), peers); err != nil {
if err := WriteWgConfig(&cfg.Node, key.String(), peers); err != nil {
logger.Log(1, "error writing wg conf file: ", err.Error())
return err
}
@ -216,7 +219,7 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
//ipv4
if node.Address != "" {
_, cidr, cidrErr := net.ParseCIDR(modcfg.NetworkSettings.AddressRange)
_, cidr, cidrErr := net.ParseCIDR(cfg.NetworkSettings.AddressRange)
if cidrErr == nil {
local.SetCIDRRoute(ifacename, node.Address, cidr)
} else {
@ -226,7 +229,7 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
}
if node.Address6 != "" {
//ipv6
_, cidr, cidrErr := net.ParseCIDR(modcfg.NetworkSettings.AddressRange6)
_, cidr, cidrErr := net.ParseCIDR(cfg.NetworkSettings.AddressRange6)
if cidrErr == nil {
local.SetCIDRRoute(ifacename, node.Address6, cidr)
} else {