disable resolvctl dns

This commit is contained in:
Matthew R. Kasun
2022-03-03 15:07:27 -05:00
parent 9bd0af7e9c
commit d7b0852e24
2 changed files with 37 additions and 39 deletions

View File

@@ -7,7 +7,6 @@ import (
"errors" "errors"
"fmt" "fmt"
"log" "log"
"os/exec"
"runtime" "runtime"
nodepb "github.com/gravitl/netmaker/grpc" nodepb "github.com/gravitl/netmaker/grpc"
@@ -110,14 +109,14 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string, iscomms bool) error
} }
} }
if ncutils.IsLinux() { // if ncutils.IsLinux() {
_, err := exec.LookPath("resolvectl") // _, err := exec.LookPath("resolvectl")
if err != nil { // if err != nil {
ncutils.PrintLog("resolvectl not present", 2) // ncutils.PrintLog("resolvectl not present", 2)
ncutils.PrintLog("unable to configure DNS automatically, disabling automated DNS management", 2) // ncutils.PrintLog("unable to configure DNS automatically, disabling automated DNS management", 2)
cfg.Node.DNSOn = "no" // cfg.Node.DNSOn = "no"
} // }
} // }
if ncutils.IsFreeBSD() { if ncutils.IsFreeBSD() {
cfg.Node.UDPHolePunch = "no" cfg.Node.UDPHolePunch = "no"
} }
@@ -236,20 +235,20 @@ func JoinNetwork(cfg config.ClientConfig, privateKey string, iscomms bool) error
if err != nil { if err != nil {
return err return err
} }
if node.DNSOn == "yes" { // if node.DNSOn == "yes" {
for _, server := range node.NetworkSettings.DefaultServerAddrs { // for _, server := range node.NetworkSettings.DefaultServerAddrs {
if server.IsLeader { // if server.IsLeader {
go func() { // go func() {
if !local.SetDNSWithRetry(node, server.Address) { // if !local.SetDNSWithRetry(node, server.Address) {
cfg.Node.DNSOn = "no" // cfg.Node.DNSOn = "no"
var currentCommsCfg = getCommsCfgByNode(&cfg.Node) // var currentCommsCfg = getCommsCfgByNode(&cfg.Node)
PublishNodeUpdate(&currentCommsCfg, &cfg) // PublishNodeUpdate(&currentCommsCfg, &cfg)
} // }
}() // }()
break // break
} // }
} // }
} // }
if !iscomms { if !iscomms {
if cfg.Daemon != "off" { if cfg.Daemon != "off" {

View File

@@ -118,14 +118,14 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
} }
time.Sleep(time.Second >> 0) time.Sleep(time.Second >> 0)
if newNode.DNSOn == "yes" { // if newNode.DNSOn == "yes" {
for _, server := range newNode.NetworkSettings.DefaultServerAddrs { // for _, server := range newNode.NetworkSettings.DefaultServerAddrs {
if server.IsLeader { // if server.IsLeader {
go local.SetDNSWithRetry(newNode, server.Address) // go local.SetDNSWithRetry(newNode, server.Address)
break // break
} // }
} // }
} // }
doneErr := publishSignal(&commsCfg, &nodeCfg, ncutils.DONE) doneErr := publishSignal(&commsCfg, &nodeCfg, ncutils.DONE)
if doneErr != nil { if doneErr != nil {
ncutils.Log("could not notify server to update peers after interface change") ncutils.Log("could not notify server to update peers after interface change")
@@ -143,10 +143,13 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
//deal with DNS //deal with DNS
if newNode.DNSOn != "yes" && shouldDNSChange && nodeCfg.Node.Interface != "" { if newNode.DNSOn != "yes" && shouldDNSChange && nodeCfg.Node.Interface != "" {
ncutils.Log("settng DNS off") ncutils.Log("settng DNS off")
_, err := ncutils.RunCmd("/usr/bin/resolvectl revert "+nodeCfg.Node.Interface, true) if err := removeHostDNS(ncutils.IsWindows()); err != nil {
if err != nil { ncutils.Log("error removing netmaker profile from /etc/hosts " + dataErr.Error())
ncutils.Log("error applying dns" + err.Error())
} }
// _, err := ncutils.RunCmd("/usr/bin/resolvectl revert "+nodeCfg.Node.Interface, true)
// if err != nil {
// ncutils.Log("error applying dns" + err.Error())
// }
} }
} }
@@ -195,12 +198,8 @@ func UpdatePeers(client mqtt.Client, msg mqtt.Message) {
return return
} }
logger.Log(0, "DNS updating /etc/hosts") logger.Log(0, "DNS updating /etc/hosts")
windows := false
if ncutils.IsWindows() {
windows = true
}
if cfg.Node.DNSOn == "yes" { if cfg.Node.DNSOn == "yes" {
if err := setHostDNS(peerUpdate.DNS, windows); err != nil { if err := setHostDNS(peerUpdate.DNS, ncutils.IsWindows()); err != nil {
ncutils.Log("error updating /etc/hosts " + err.Error()) ncutils.Log("error updating /etc/hosts " + err.Error())
return return
} }