publishing port changes

This commit is contained in:
afeiszli
2022-04-22 08:36:42 -04:00
parent 5f303cb50a
commit 6a90cd803a
7 changed files with 81 additions and 46 deletions

View File

@@ -6,14 +6,12 @@ import (
"errors"
"fmt"
"os"
"strconv"
"sync"
"time"
"github.com/gravitl/netmaker/logger"
"github.com/gravitl/netmaker/netclient/auth"
"github.com/gravitl/netmaker/netclient/config"
"github.com/gravitl/netmaker/netclient/local"
"github.com/gravitl/netmaker/netclient/ncutils"
"github.com/gravitl/netmaker/tls"
)
@@ -62,23 +60,8 @@ func Checkin(ctx context.Context, wg *sync.WaitGroup) {
logger.Log(0, "could not publish local address change")
}
}
var deviceiface = nodeCfg.Node.Interface
if ncutils.IsMac() { // if node is Mac (Darwin) get the tunnel name first
deviceiface, err = local.GetMacIface(nodeCfg.Node.Address)
if err != nil || deviceiface == "" {
deviceiface = nodeCfg.Node.Interface
}
}
localPort, errN := local.GetLocalListenPort(deviceiface)
if errN != nil {
logger.Log(1, "error encountered checking local listen port: ", err.Error())
} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 {
logger.Log(1, "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort)))
nodeCfg.Node.LocalListenPort = localPort
if err := PublishNodeUpdate(&nodeCfg); err != nil {
logger.Log(0, "could not publish local port change")
}
}
_ = UpdateLocalListenPort(&nodeCfg)
} else if nodeCfg.Node.IsLocal == "yes" && nodeCfg.Node.LocalRange != "" {
localIP, err := ncutils.GetLocalIP(nodeCfg.Node.LocalRange)
if err != nil {
@@ -115,6 +98,7 @@ func PublishNodeUpdate(nodeCfg *config.ClientConfig) error {
if err = publish(nodeCfg, fmt.Sprintf("update/%s", nodeCfg.Node.ID), data, 1); err != nil {
return err
}
logger.Log(0, "sent a node update to server for node", nodeCfg.Node.Name, ", ", nodeCfg.Node.ID)
return nil
}
@@ -139,7 +123,6 @@ func publish(nodeCfg *config.ClientConfig, dest string, msg []byte, qos byte) er
if err != nil {
return err
}
serverPubKey, err := ncutils.ConvertBytesToKey(nodeCfg.Node.TrafficKeys.Server)
if err != nil {
return err
@@ -155,6 +138,7 @@ func publish(nodeCfg *config.ClientConfig, dest string, msg []byte, qos byte) er
if token := client.Publish(dest, qos, false, encrypted); token.Wait() && token.Error() != nil {
return token.Error()
}
return nil
}