Browse Source

call UpdateDNS on node update if DNSOn

Matthew R Kasun 3 years ago
parent
commit
1c69ee18c8
2 changed files with 15 additions and 3 deletions
  1. 12 0
      netclient/functions/daemon.go
  2. 3 3
      netclient/wireguard/common.go

+ 12 - 0
netclient/functions/daemon.go

@@ -13,6 +13,7 @@ import (
 	mqtt "github.com/eclipse/paho.mqtt.golang"
 	mqtt "github.com/eclipse/paho.mqtt.golang"
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/netclient/config"
 	"github.com/gravitl/netmaker/netclient/config"
+	"github.com/gravitl/netmaker/netclient/local"
 	"github.com/gravitl/netmaker/netclient/ncutils"
 	"github.com/gravitl/netmaker/netclient/ncutils"
 	"github.com/gravitl/netmaker/netclient/wireguard"
 	"github.com/gravitl/netmaker/netclient/wireguard"
 	"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
 	"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
@@ -151,6 +152,17 @@ var NodeUpdate mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message)
 			ncutils.Log("error restarting wg after node update " + err.Error())
 			ncutils.Log("error restarting wg after node update " + err.Error())
 			return
 			return
 		}
 		}
+		//deal with DNS
+		if newNode.DNSOn == "on" {
+			if err = local.UpdateDNS(cfg.Node.Interface, cfg.Network, cfg.Server.CoreDNSAddr); err != nil {
+				ncutils.Log("error applying dns" + err.Error())
+			}
+		} else {
+			_, err := ncutils.RunCmd("resolvectrl revert "+cfg.Node.Interface, true)
+			if err != nil {
+				ncutils.Log("error applying dns" + err.Error())
+			}
+		}
 	}()
 	}()
 }
 }
 
 

+ 3 - 3
netclient/wireguard/common.go

@@ -424,9 +424,9 @@ func UpdateWgInterface(file, privateKey, nameserver string, node models.Node) er
 	if node.Address6 != "" {
 	if node.Address6 != "" {
 		wireguard.Section(section_interface).Key("Address").SetValue(node.Address6)
 		wireguard.Section(section_interface).Key("Address").SetValue(node.Address6)
 	}
 	}
-	if node.DNSOn == "yes" {
-		wireguard.Section(section_interface).Key("DNS").SetValue(nameserver)
-	}
+	//if node.DNSOn == "yes" {
+	//	wireguard.Section(section_interface).Key("DNS").SetValue(nameserver)
+	//}
 	if node.PostUp != "" {
 	if node.PostUp != "" {
 		wireguard.Section(section_interface).Key("PostUp").SetValue(node.PostUp)
 		wireguard.Section(section_interface).Key("PostUp").SetValue(node.PostUp)
 	}
 	}