mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-05 00:43:58 +08:00
fixed lowercase letters and extra spaces
This commit is contained in:
@@ -43,7 +43,7 @@ func Join(cfg *config.ClientConfig, privateKey string) error {
|
|||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
logger.Log(1, "joined ", cfg.Network)
|
logger.Log(1, "joined", cfg.Network)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -85,7 +85,7 @@ func Pull(cfg *config.ClientConfig) error {
|
|||||||
|
|
||||||
_, err = functions.Pull(network, true)
|
_, err = functions.Pull(network, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "Error pulling network config for network: ", network, "\n", err.Error())
|
logger.Log(1, "error pulling network config for network: ", network, "\n", err.Error())
|
||||||
} else {
|
} else {
|
||||||
logger.Log(1, "pulled network config for "+network)
|
logger.Log(1, "pulled network config for "+network)
|
||||||
}
|
}
|
||||||
@@ -113,7 +113,7 @@ func Pull(cfg *config.ClientConfig) error {
|
|||||||
daemon.Restart()
|
daemon.Restart()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logger.Log(1, "reset network", cfg.Network, " and peer configs")
|
logger.Log(1, "reset network", cfg.Network, "and peer configs")
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@@ -134,7 +134,7 @@ func Uninstall() error {
|
|||||||
for _, network := range networks {
|
for _, network := range networks {
|
||||||
err = LeaveNetwork(network)
|
err = LeaveNetwork(network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "Encounter issue leaving network ", network, ": ", err.Error())
|
logger.Log(1, "encounter issue leaving network", network, ":", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -166,19 +166,19 @@ func LeaveNetwork(network string) error {
|
|||||||
if node.IsServer != "yes" {
|
if node.IsServer != "yes" {
|
||||||
token, err := Authenticate(cfg)
|
token, err := Authenticate(cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, "Network: ", cfg.Network, "Unable to authenticate: "+err.Error())
|
logger.Log(0, "network:", cfg.Network, "Unable to authenticate: "+err.Error())
|
||||||
} else {
|
} else {
|
||||||
url := "https://" + cfg.Server.API + "/api/nodes/" + cfg.Network + "/" + cfg.Node.ID
|
url := "https://" + cfg.Server.API + "/api/nodes/" + cfg.Network + "/" + cfg.Node.ID
|
||||||
response, err := API("", http.MethodDelete, url, token)
|
response, err := API("", http.MethodDelete, url, token)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, "Network: ", cfg.Network, "Error deleting node on server: "+err.Error())
|
logger.Log(0, "network:", cfg.Network, "Error deleting node on server: "+err.Error())
|
||||||
} else {
|
} else {
|
||||||
if response.StatusCode == http.StatusOK {
|
if response.StatusCode == http.StatusOK {
|
||||||
logger.Log(0, "Network: ", cfg.Network, "deleted node", cfg.Node.Name, ".")
|
logger.Log(0, "network:", cfg.Network, "deleted node", cfg.Node.Name, ".")
|
||||||
} else {
|
} else {
|
||||||
bodybytes, _ := io.ReadAll(response.Body)
|
bodybytes, _ := io.ReadAll(response.Body)
|
||||||
defer response.Body.Close()
|
defer response.Body.Close()
|
||||||
logger.Log(0, fmt.Sprintf("Network: %s error deleting node on server %s %s", cfg.Network, response.Status, string(bodybytes)))
|
logger.Log(0, fmt.Sprintf("network: %s error deleting node on server %s %s", cfg.Network, response.Status, string(bodybytes)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -203,15 +203,15 @@ func LeaveNetwork(network string) error {
|
|||||||
local.RemoveCIDRRoute(removeIface, queryAddr, cidr)
|
local.RemoveCIDRRoute(removeIface, queryAddr, cidr)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.Log(1, "Could not flush peer routes when leaving network, ", cfg.Node.Network)
|
logger.Log(1, "could not flush peer routes when leaving network,", cfg.Node.Network)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = WipeLocal(node.Network)
|
err = WipeLocal(node.Network)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "Network: ", node.Network, " unable to wipe local config")
|
logger.Log(1, "network:", node.Network, "unable to wipe local config")
|
||||||
} else {
|
} else {
|
||||||
logger.Log(1, "removed ", node.Network, " network locally")
|
logger.Log(1, "removed", node.Network, "network locally")
|
||||||
}
|
}
|
||||||
|
|
||||||
return daemon.Restart()
|
return daemon.Restart()
|
||||||
@@ -232,7 +232,7 @@ func WipeLocal(network string) error {
|
|||||||
ifacename := nodecfg.Interface
|
ifacename := nodecfg.Interface
|
||||||
if ifacename != "" {
|
if ifacename != "" {
|
||||||
if err = wireguard.RemoveConf(ifacename, true); err == nil {
|
if err = wireguard.RemoveConf(ifacename, true); err == nil {
|
||||||
logger.Log(1, "Network: ", nodecfg.Network, "removed WireGuard interface: ", ifacename)
|
logger.Log(1, "network:", nodecfg.Network, "removed WireGuard interface: ", ifacename)
|
||||||
} else if strings.Contains(err.Error(), "does not exist") {
|
} else if strings.Contains(err.Error(), "does not exist") {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
@@ -398,8 +398,8 @@ func SetServerInfo(cfg *config.ClientConfig) error {
|
|||||||
|
|
||||||
func informPortChange(node *models.Node) {
|
func informPortChange(node *models.Node) {
|
||||||
if node.ListenPort == 0 {
|
if node.ListenPort == 0 {
|
||||||
logger.Log(0, "Network: ", node.Network, "UDP hole punching enabled for node", node.Name)
|
logger.Log(0, "network:", node.Network, "UDP hole punching enabled for node", node.Name)
|
||||||
} else {
|
} else {
|
||||||
logger.Log(0, "Network: ", node.Network, "node", node.Name, "is using port", strconv.Itoa(int(node.ListenPort)))
|
logger.Log(0, "network:", node.Network, "node", node.Name, "is using port", strconv.Itoa(int(node.ListenPort)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -110,19 +110,19 @@ func startGoRoutines(wg *sync.WaitGroup) context.CancelFunc {
|
|||||||
|
|
||||||
// UpdateKeys -- updates private key and returns new publickey
|
// UpdateKeys -- updates private key and returns new publickey
|
||||||
func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error {
|
func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error {
|
||||||
logger.Log(0, "Interface: ", nodeCfg.Node.Interface, "received message to update wireguard keys for network ", nodeCfg.Network)
|
logger.Log(0, "interface:", nodeCfg.Node.Interface, "received message to update wireguard keys for network ", nodeCfg.Network)
|
||||||
key, err := wgtypes.GeneratePrivateKey()
|
key, err := wgtypes.GeneratePrivateKey()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, "error generating privatekey ", err.Error())
|
logger.Log(0, "network:", nodeCfg.Node.Network, "error generating privatekey ", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
file := ncutils.GetNetclientPathSpecific() + nodeCfg.Node.Interface + ".conf"
|
file := ncutils.GetNetclientPathSpecific() + nodeCfg.Node.Interface + ".conf"
|
||||||
if err := wireguard.UpdatePrivateKey(file, key.String()); err != nil {
|
if err := wireguard.UpdatePrivateKey(file, key.String()); err != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, ". error updating wireguard key ", err.Error())
|
logger.Log(0, "network:", nodeCfg.Node.Network, "error updating wireguard key ", err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if storeErr := wireguard.StorePrivKey(key.String(), nodeCfg.Network); storeErr != nil {
|
if storeErr := wireguard.StorePrivKey(key.String(), nodeCfg.Network); storeErr != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Network, "failed to save private key", storeErr.Error())
|
logger.Log(0, "network:", nodeCfg.Network, "failed to save private key", storeErr.Error())
|
||||||
return storeErr
|
return storeErr
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,15 +138,15 @@ func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error {
|
|||||||
func setSubscriptions(client mqtt.Client, nodeCfg *config.ClientConfig) {
|
func setSubscriptions(client mqtt.Client, nodeCfg *config.ClientConfig) {
|
||||||
if token := client.Subscribe(fmt.Sprintf("update/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID), 0, mqtt.MessageHandler(NodeUpdate)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil {
|
if token := client.Subscribe(fmt.Sprintf("update/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID), 0, mqtt.MessageHandler(NodeUpdate)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil {
|
||||||
if token.Error() == nil {
|
if token.Error() == nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, ". connection timeout")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "connection timeout")
|
||||||
} else {
|
} else {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, ". ", token.Error().Error())
|
logger.Log(0, "network:", nodeCfg.Node.Network, token.Error().Error())
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
logger.Log(3, fmt.Sprintf("subscribed to node updates for node %s update/%s/%s", nodeCfg.Node.Name, nodeCfg.Node.Network, nodeCfg.Node.ID))
|
logger.Log(3, fmt.Sprintf("subscribed to node updates for node %s update/%s/%s", nodeCfg.Node.Name, nodeCfg.Node.Network, nodeCfg.Node.ID))
|
||||||
if token := client.Subscribe(fmt.Sprintf("peers/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID), 0, mqtt.MessageHandler(UpdatePeers)); token.Wait() && token.Error() != nil {
|
if token := client.Subscribe(fmt.Sprintf("peers/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID), 0, mqtt.MessageHandler(UpdatePeers)); token.Wait() && token.Error() != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, ". ", token.Error().Error())
|
logger.Log(0, "network", nodeCfg.Node.Network, token.Error().Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
logger.Log(3, fmt.Sprintf("subscribed to peer updates for node %s peers/%s/%s", nodeCfg.Node.Name, nodeCfg.Node.Network, nodeCfg.Node.ID))
|
logger.Log(3, fmt.Sprintf("subscribed to peer updates for node %s peers/%s/%s", nodeCfg.Node.Name, nodeCfg.Node.Network, nodeCfg.Node.ID))
|
||||||
@@ -159,22 +159,22 @@ func unsubscribeNode(client mqtt.Client, nodeCfg *config.ClientConfig) {
|
|||||||
var ok = true
|
var ok = true
|
||||||
if token := client.Unsubscribe(fmt.Sprintf("update/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil {
|
if token := client.Unsubscribe(fmt.Sprintf("update/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil {
|
||||||
if token.Error() == nil {
|
if token.Error() == nil {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "unable to unsubscribe from updates for node ", nodeCfg.Node.Name, "\n", "connection timeout")
|
logger.Log(1, "network:", nodeCfg.Node.Network, "unable to unsubscribe from updates for node ", nodeCfg.Node.Name, "\n", "connection timeout")
|
||||||
} else {
|
} else {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "unable to unsubscribe from updates for node ", nodeCfg.Node.Name, "\n", token.Error().Error())
|
logger.Log(1, "network:", nodeCfg.Node.Network, "unable to unsubscribe from updates for node ", nodeCfg.Node.Name, "\n", token.Error().Error())
|
||||||
}
|
}
|
||||||
ok = false
|
ok = false
|
||||||
}
|
}
|
||||||
if token := client.Unsubscribe(fmt.Sprintf("peers/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil {
|
if token := client.Unsubscribe(fmt.Sprintf("peers/%s/%s", nodeCfg.Node.Network, nodeCfg.Node.ID)); token.WaitTimeout(mq.MQ_TIMEOUT*time.Second) && token.Error() != nil {
|
||||||
if token.Error() == nil {
|
if token.Error() == nil {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "unable to unsubscribe from peer updates for node ", nodeCfg.Node.Name, "\n", "connection timeout")
|
logger.Log(1, "network:", nodeCfg.Node.Network, "unable to unsubscribe from peer updates for node ", nodeCfg.Node.Name, "\n", "connection timeout")
|
||||||
} else {
|
} else {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "unable to unsubscribe from peer updates for node ", nodeCfg.Node.Name, "\n", token.Error().Error())
|
logger.Log(1, "network:", nodeCfg.Node.Network, "unable to unsubscribe from peer updates for node ", nodeCfg.Node.Name, "\n", token.Error().Error())
|
||||||
}
|
}
|
||||||
ok = false
|
ok = false
|
||||||
}
|
}
|
||||||
if ok {
|
if ok {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "successfully unsubscribed node ", nodeCfg.Node.ID, " : ", nodeCfg.Node.Name)
|
logger.Log(1, "network:", nodeCfg.Node.Network, "successfully unsubscribed node ", nodeCfg.Node.ID, " : ", nodeCfg.Node.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,7 +182,7 @@ func unsubscribeNode(client mqtt.Client, nodeCfg *config.ClientConfig) {
|
|||||||
// the client should subscribe to ALL nodes that exist on server locally
|
// the client should subscribe to ALL nodes that exist on server locally
|
||||||
func messageQueue(ctx context.Context, wg *sync.WaitGroup, cfg *config.ClientConfig) {
|
func messageQueue(ctx context.Context, wg *sync.WaitGroup, cfg *config.ClientConfig) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
logger.Log(0, "Network: ", cfg.Node.Network, ". ", "netclient message queue started for server: ", cfg.Server.Server)
|
logger.Log(0, "network:", cfg.Node.Network, "netclient message queue started for server: ", cfg.Server.Server)
|
||||||
client, err := setupMQTT(cfg, false)
|
client, err := setupMQTT(cfg, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, "unable to connect to broker", cfg.Server.Server, err.Error())
|
logger.Log(0, "unable to connect to broker", cfg.Server.Server, err.Error())
|
||||||
@@ -259,7 +259,7 @@ func setupMQTT(cfg *config.ClientConfig, publish bool) (mqtt.Client, error) {
|
|||||||
opts.SetOrderMatters(true)
|
opts.SetOrderMatters(true)
|
||||||
opts.SetResumeSubs(true)
|
opts.SetResumeSubs(true)
|
||||||
opts.SetConnectionLostHandler(func(c mqtt.Client, e error) {
|
opts.SetConnectionLostHandler(func(c mqtt.Client, e error) {
|
||||||
logger.Log(0, "Network: ", cfg.Node.Network, ". ", "detected broker connection lost for", cfg.Server.Server)
|
logger.Log(0, "network:", cfg.Node.Network, "detected broker connection lost for", cfg.Server.Server)
|
||||||
})
|
})
|
||||||
client := mqtt.NewClient(opts)
|
client := mqtt.NewClient(opts)
|
||||||
var connecterr error
|
var connecterr error
|
||||||
|
@@ -76,7 +76,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
cfg.Node.LocalAddress = intIP
|
cfg.Node.LocalAddress = intIP
|
||||||
} else {
|
} else {
|
||||||
logger.Log(1, "Network: ", cfg.Network, ". ", "error retrieving private address: ", err.Error())
|
logger.Log(1, "network:", cfg.Network, "error retrieving private address: ", err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
|
|||||||
cfg.Node.Endpoint, err = ncutils.GetPublicIP()
|
cfg.Node.Endpoint, err = ncutils.GetPublicIP()
|
||||||
}
|
}
|
||||||
if err != nil || cfg.Node.Endpoint == "" {
|
if err != nil || cfg.Node.Endpoint == "" {
|
||||||
logger.Log(0, "Network: ", cfg.Network, ". ", "Error setting cfg.Node.Endpoint.")
|
logger.Log(0, "network:", cfg.Network, "error setting cfg.Node.Endpoint.")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -163,13 +163,13 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if node.IsPending == "yes" {
|
if node.IsPending == "yes" {
|
||||||
logger.Log(0, "Network: ", cfg.Network, ". ", "Node is marked as PENDING.")
|
logger.Log(0, "network:", cfg.Network, "node is marked as PENDING.")
|
||||||
logger.Log(0, "Network: ", cfg.Network, ". ", "Awaiting approval from Admin before configuring WireGuard.")
|
logger.Log(0, "network:", cfg.Network, "awaiting approval from Admin before configuring WireGuard.")
|
||||||
if cfg.Daemon != "off" {
|
if cfg.Daemon != "off" {
|
||||||
return daemon.InstallDaemon()
|
return daemon.InstallDaemon()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logger.Log(1, "Network: ", cfg.Node.Network, ". ", "node created on remote server...updating configs")
|
logger.Log(1, "network:", cfg.Node.Network, "node created on remote server...updating configs")
|
||||||
err = ncutils.ModPort(&node)
|
err = ncutils.ModPort(&node)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -186,7 +186,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
|
|||||||
}
|
}
|
||||||
// attempt to make backup
|
// attempt to make backup
|
||||||
if err = config.SaveBackup(node.Network); err != nil {
|
if err = config.SaveBackup(node.Network); err != nil {
|
||||||
logger.Log(0, "Network: ", node.Network, ". ", "failed to make backup, node will not auto restore if config is corrupted")
|
logger.Log(0, "network:", node.Network, "failed to make backup, node will not auto restore if config is corrupted")
|
||||||
}
|
}
|
||||||
logger.Log(0, "starting wireguard")
|
logger.Log(0, "starting wireguard")
|
||||||
err = wireguard.InitWireguard(&node, privateKey, nodeGET.Peers[:], false)
|
err = wireguard.InitWireguard(&node, privateKey, nodeGET.Peers[:], false)
|
||||||
@@ -202,7 +202,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string) error {
|
|||||||
}
|
}
|
||||||
// update server with latest data
|
// update server with latest data
|
||||||
if err := PublishNodeUpdate(cfg); err != nil {
|
if err := PublishNodeUpdate(cfg); err != nil {
|
||||||
logger.Log(0, "Network: ", cfg.Network, ". ", "failed to publish update for join", err.Error())
|
logger.Log(0, "network:", cfg.Network, "failed to publish update for join", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
if cfg.Daemon == "install" || ncutils.IsFreeBSD() {
|
if cfg.Daemon == "install" || ncutils.IsFreeBSD() {
|
||||||
@@ -231,8 +231,8 @@ func formatName(node models.Node) string {
|
|||||||
node.Name = ncutils.ShortenString(node.Name, models.MAX_NAME_LENGTH)
|
node.Name = ncutils.ShortenString(node.Name, models.MAX_NAME_LENGTH)
|
||||||
}
|
}
|
||||||
if !node.NameInNodeCharSet() || len(node.Name) > models.MAX_NAME_LENGTH {
|
if !node.NameInNodeCharSet() || len(node.Name) > models.MAX_NAME_LENGTH {
|
||||||
logger.Log(1, "Network: ", node.Network, ". ", "could not properly format name: "+node.Name)
|
logger.Log(1, "network:", node.Network, "could not properly format name: "+node.Name)
|
||||||
logger.Log(1, "Network: ", node.Network, ". ", "setting name to blank")
|
logger.Log(1, "network:", node.Network, "setting name to blank")
|
||||||
node.Name = ""
|
node.Name = ""
|
||||||
}
|
}
|
||||||
return node.Name
|
return node.Name
|
||||||
|
@@ -35,9 +35,9 @@ func UpdateLocalListenPort(nodeCfg *config.ClientConfig) error {
|
|||||||
ifacename := getRealIface(nodeCfg.Node.Interface, nodeCfg.Node.Address)
|
ifacename := getRealIface(nodeCfg.Node.Interface, nodeCfg.Node.Address)
|
||||||
localPort, err := GetLocalListenPort(ifacename)
|
localPort, err := GetLocalListenPort(ifacename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, "error encountered checking local listen port: ", ifacename, err.Error())
|
logger.Log(1, "network:", nodeCfg.Node.Network, "error encountered checking local listen port: ", ifacename, err.Error())
|
||||||
} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 {
|
} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort)))
|
logger.Log(1, "network:", nodeCfg.Node.Network, "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort)))
|
||||||
nodeCfg.Node.LocalListenPort = localPort
|
nodeCfg.Node.LocalListenPort = localPort
|
||||||
err = config.ModNodeConfig(&nodeCfg.Node)
|
err = config.ModNodeConfig(&nodeCfg.Node)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@@ -34,16 +34,16 @@ func UpdateLocalListenPort(nodeCfg *config.ClientConfig) error {
|
|||||||
var err error
|
var err error
|
||||||
localPort, err := GetLocalListenPort(nodeCfg.Node.Interface)
|
localPort, err := GetLocalListenPort(nodeCfg.Node.Interface)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "error encountered checking local listen port for interface : ", nodeCfg.Node.Interface, err.Error())
|
logger.Log(1, "network:", nodeCfg.Node.Network, "error encountered checking local listen port for interface : ", nodeCfg.Node.Interface, err.Error())
|
||||||
} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 {
|
} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, ". ", "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort)))
|
logger.Log(1, "network:", nodeCfg.Node.Network, "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort)))
|
||||||
nodeCfg.Node.LocalListenPort = localPort
|
nodeCfg.Node.LocalListenPort = localPort
|
||||||
err = config.ModNodeConfig(&nodeCfg.Node)
|
err = config.ModNodeConfig(&nodeCfg.Node)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := PublishNodeUpdate(nodeCfg); err != nil {
|
if err := PublishNodeUpdate(nodeCfg); err != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, ". ", "could not publish local port change")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "could not publish local port change")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
|
@@ -25,7 +25,7 @@ import (
|
|||||||
// All -- mqtt message hander for all ('#') topics
|
// All -- mqtt message hander for all ('#') topics
|
||||||
var All mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
var All mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message) {
|
||||||
logger.Log(0, "default message handler -- received message but not handling")
|
logger.Log(0, "default message handler -- received message but not handling")
|
||||||
logger.Log(0, "Topic: "+string(msg.Topic()))
|
logger.Log(0, "topic: "+string(msg.Topic()))
|
||||||
//logger.Log(0, "Message: " + string(msg.Payload()))
|
//logger.Log(0, "Message: " + string(msg.Payload()))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
insert(newNode.Network, lastNodeUpdate, string(data)) // store new message in cache
|
insert(newNode.Network, lastNodeUpdate, string(data)) // store new message in cache
|
||||||
logger.Log(0, "Network: ", newNode.Network, "received message to update node "+newNode.Name)
|
logger.Log(0, "network:", newNode.Network, "received message to update node "+newNode.Name)
|
||||||
|
|
||||||
// ensure that OS never changes
|
// ensure that OS never changes
|
||||||
newNode.OS = runtime.GOOS
|
newNode.OS = runtime.GOOS
|
||||||
@@ -66,7 +66,7 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
|
|||||||
nodeCfg.Node = newNode
|
nodeCfg.Node = newNode
|
||||||
switch newNode.Action {
|
switch newNode.Action {
|
||||||
case models.NODE_DELETE:
|
case models.NODE_DELETE:
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " received delete request for %s", nodeCfg.Node.Name)
|
logger.Log(0, "network:", nodeCfg.Node.Network, " received delete request for %s", nodeCfg.Node.Name)
|
||||||
unsubscribeNode(client, &nodeCfg)
|
unsubscribeNode(client, &nodeCfg)
|
||||||
if err = LeaveNetwork(nodeCfg.Node.Network); err != nil {
|
if err = LeaveNetwork(nodeCfg.Node.Network); err != nil {
|
||||||
if !strings.Contains("rpc error", err.Error()) {
|
if !strings.Contains("rpc error", err.Error()) {
|
||||||
@@ -74,7 +74,7 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logger.Log(0, nodeCfg.Node.Name, " was removed from nework ", nodeCfg.Node.Network)
|
logger.Log(0, nodeCfg.Node.Name, "was removed from network", nodeCfg.Node.Network)
|
||||||
return
|
return
|
||||||
case models.NODE_UPDATE_KEY:
|
case models.NODE_UPDATE_KEY:
|
||||||
// == get the current key for node ==
|
// == get the current key for node ==
|
||||||
@@ -98,7 +98,7 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
|
|||||||
// Save new config
|
// Save new config
|
||||||
nodeCfg.Node.Action = models.NODE_NOOP
|
nodeCfg.Node.Action = models.NODE_NOOP
|
||||||
if err := config.Write(&nodeCfg, nodeCfg.Network); err != nil {
|
if err := config.Write(&nodeCfg, nodeCfg.Network); err != nil {
|
||||||
logger.Log(0, nodeCfg.Node.Network, " error updating node configuration: ", err.Error())
|
logger.Log(0, nodeCfg.Node.Network, "error updating node configuration: ", err.Error())
|
||||||
}
|
}
|
||||||
nameserver := nodeCfg.Server.CoreDNSAddr
|
nameserver := nodeCfg.Server.CoreDNSAddr
|
||||||
privateKey, err := wireguard.RetrievePrivKey(newNode.Network)
|
privateKey, err := wireguard.RetrievePrivKey(newNode.Network)
|
||||||
@@ -115,7 +115,7 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
|
|||||||
}
|
}
|
||||||
err = ncutils.ModPort(&newNode)
|
err = ncutils.ModPort(&newNode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " error modifying node port on", newNode.Name, "-", err.Error())
|
logger.Log(0, "network:", nodeCfg.Node.Network, "error modifying node port on", newNode.Name, "-", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
informPortChange(&newNode)
|
informPortChange(&newNode)
|
||||||
@@ -148,23 +148,23 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
|
|||||||
// }
|
// }
|
||||||
doneErr := publishSignal(&nodeCfg, ncutils.DONE)
|
doneErr := publishSignal(&nodeCfg, ncutils.DONE)
|
||||||
if doneErr != nil {
|
if doneErr != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " could not notify server to update peers after interface change")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "could not notify server to update peers after interface change")
|
||||||
} else {
|
} else {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " signalled finished interface update to server")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "signalled finished interface update to server")
|
||||||
}
|
}
|
||||||
} else if hubChange {
|
} else if hubChange {
|
||||||
doneErr := publishSignal(&nodeCfg, ncutils.DONE)
|
doneErr := publishSignal(&nodeCfg, ncutils.DONE)
|
||||||
if doneErr != nil {
|
if doneErr != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " could not notify server to update peers after hub change")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "could not notify server to update peers after hub change")
|
||||||
} else {
|
} else {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " signalled finished hub update to server")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "signalled finished hub update to server")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//deal with DNS
|
//deal with DNS
|
||||||
if newNode.DNSOn != "yes" && shouldDNSChange && nodeCfg.Node.Interface != "" {
|
if newNode.DNSOn != "yes" && shouldDNSChange && nodeCfg.Node.Interface != "" {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " settng DNS off")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "settng DNS off")
|
||||||
if err := removeHostDNS(nodeCfg.Node.Interface, ncutils.IsWindows()); err != nil {
|
if err := removeHostDNS(nodeCfg.Node.Interface, ncutils.IsWindows()); err != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " error removing netmaker profile from /etc/hosts "+err.Error())
|
logger.Log(0, "network:", nodeCfg.Node.Network, "error removing netmaker profile from /etc/hosts "+err.Error())
|
||||||
}
|
}
|
||||||
// _, err := ncutils.RunCmd("/usr/bin/resolvectl revert "+nodeCfg.Node.Interface, true)
|
// _, err := ncutils.RunCmd("/usr/bin/resolvectl revert "+nodeCfg.Node.Interface, true)
|
||||||
// if err != nil {
|
// if err != nil {
|
||||||
@@ -229,15 +229,15 @@ func UpdatePeers(client mqtt.Client, msg mqtt.Message) {
|
|||||||
logger.Log(0, "error syncing wg after peer update: "+err.Error())
|
logger.Log(0, "error syncing wg after peer update: "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
logger.Log(0, "Network: ", cfg.Node.Network, " received peer update for node "+cfg.Node.Name+" "+cfg.Node.Network)
|
logger.Log(0, "network:", cfg.Node.Network, "received peer update for node "+cfg.Node.Name+" "+cfg.Node.Network)
|
||||||
if cfg.Node.DNSOn == "yes" {
|
if cfg.Node.DNSOn == "yes" {
|
||||||
if err := setHostDNS(peerUpdate.DNS, cfg.Node.Interface, ncutils.IsWindows()); err != nil {
|
if err := setHostDNS(peerUpdate.DNS, cfg.Node.Interface, ncutils.IsWindows()); err != nil {
|
||||||
logger.Log(0, "Network: ", cfg.Node.Network, " error updating /etc/hosts "+err.Error())
|
logger.Log(0, "network:", cfg.Node.Network, "error updating /etc/hosts "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if err := removeHostDNS(cfg.Node.Interface, ncutils.IsWindows()); err != nil {
|
if err := removeHostDNS(cfg.Node.Interface, ncutils.IsWindows()); err != nil {
|
||||||
logger.Log(0, "Network: ", cfg.Node.Network, " error removing profile from /etc/hosts "+err.Error())
|
logger.Log(0, "network:", cfg.Node.Network, "error removing profile from /etc/hosts "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -49,18 +49,18 @@ func checkin() {
|
|||||||
logger.Log(1, "error encountered checking public ip addresses: ", err.Error())
|
logger.Log(1, "error encountered checking public ip addresses: ", err.Error())
|
||||||
}
|
}
|
||||||
if nodeCfg.Node.Endpoint != extIP && extIP != "" {
|
if nodeCfg.Node.Endpoint != extIP && extIP != "" {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, " endpoint has changed from ", nodeCfg.Node.Endpoint, " to ", extIP)
|
logger.Log(1, "network:", nodeCfg.Node.Network, "endpoint has changed from ", nodeCfg.Node.Endpoint, " to ", extIP)
|
||||||
nodeCfg.Node.Endpoint = extIP
|
nodeCfg.Node.Endpoint = extIP
|
||||||
if err := PublishNodeUpdate(&nodeCfg); err != nil {
|
if err := PublishNodeUpdate(&nodeCfg); err != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " could not publish endpoint change")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "could not publish endpoint change")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
intIP, err := getPrivateAddr()
|
intIP, err := getPrivateAddr()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, " error encountered checking private ip addresses: ", err.Error())
|
logger.Log(1, "network:", nodeCfg.Node.Network, "error encountered checking private ip addresses: ", err.Error())
|
||||||
}
|
}
|
||||||
if nodeCfg.Node.LocalAddress != intIP && intIP != "" {
|
if nodeCfg.Node.LocalAddress != intIP && intIP != "" {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, " local Address has changed from ", nodeCfg.Node.LocalAddress, " to ", intIP)
|
logger.Log(1, "network:", nodeCfg.Node.Network, "local Address has changed from ", nodeCfg.Node.LocalAddress, " to ", intIP)
|
||||||
nodeCfg.Node.LocalAddress = intIP
|
nodeCfg.Node.LocalAddress = intIP
|
||||||
if err := PublishNodeUpdate(&nodeCfg); err != nil {
|
if err := PublishNodeUpdate(&nodeCfg); err != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " could not publish local address change")
|
logger.Log(0, "Network: ", nodeCfg.Node.Network, " could not publish local address change")
|
||||||
@@ -71,13 +71,13 @@ func checkin() {
|
|||||||
} else if nodeCfg.Node.IsLocal == "yes" && nodeCfg.Node.LocalRange != "" {
|
} else if nodeCfg.Node.IsLocal == "yes" && nodeCfg.Node.LocalRange != "" {
|
||||||
localIP, err := ncutils.GetLocalIP(nodeCfg.Node.LocalRange)
|
localIP, err := ncutils.GetLocalIP(nodeCfg.Node.LocalRange)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, " error encountered checking local ip addresses: ", err.Error())
|
logger.Log(1, "network:", nodeCfg.Node.Network, "error encountered checking local ip addresses: ", err.Error())
|
||||||
}
|
}
|
||||||
if nodeCfg.Node.Endpoint != localIP && localIP != "" {
|
if nodeCfg.Node.Endpoint != localIP && localIP != "" {
|
||||||
logger.Log(1, "Network: ", nodeCfg.Node.Network, " endpoint has changed from "+nodeCfg.Node.Endpoint+" to ", localIP)
|
logger.Log(1, "network:", nodeCfg.Node.Network, "endpoint has changed from "+nodeCfg.Node.Endpoint+" to ", localIP)
|
||||||
nodeCfg.Node.Endpoint = localIP
|
nodeCfg.Node.Endpoint = localIP
|
||||||
if err := PublishNodeUpdate(&nodeCfg); err != nil {
|
if err := PublishNodeUpdate(&nodeCfg); err != nil {
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " could not publish localip change")
|
logger.Log(0, "network:", nodeCfg.Node.Network, "could not publish localip change")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,7 +99,7 @@ func PublishNodeUpdate(nodeCfg *config.ClientConfig) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.Log(0, "Network: ", nodeCfg.Node.Network, " sent a node update to server for node", nodeCfg.Node.Name, ", ", nodeCfg.Node.ID)
|
logger.Log(0, "network:", nodeCfg.Node.Network, "sent a node update to server for node", nodeCfg.Node.Name, ", ", nodeCfg.Node.ID)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -90,7 +90,7 @@ func Pull(network string, iface bool) (*models.Node, error) {
|
|||||||
}
|
}
|
||||||
var bkupErr = config.SaveBackup(network)
|
var bkupErr = config.SaveBackup(network)
|
||||||
if bkupErr != nil {
|
if bkupErr != nil {
|
||||||
logger.Log(0, "unable to update backup file for ", network)
|
logger.Log(0, "unable to update backup file for", network)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &resNode, err
|
return &resNode, err
|
||||||
|
@@ -94,7 +94,7 @@ func RegisterWithServer(private *ed25519.PrivateKey, cfg *config.ClientConfig) e
|
|||||||
if err := tls.SaveCertToFile(ncutils.GetNetclientServerPath(cfg.Server.Server)+ncutils.GetSeparator(), "client.pem", &resp.Cert); err != nil {
|
if err := tls.SaveCertToFile(ncutils.GetNetclientServerPath(cfg.Server.Server)+ncutils.GetSeparator(), "client.pem", &resp.Cert); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
logger.Log(0, "Network: ", cfg.Network, "certificates/key saved ")
|
logger.Log(0, "network:", cfg.Network, "certificates/key saved ")
|
||||||
//join the network defined in the token
|
//join the network defined in the token
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user