Browse Source

fix dns issues on checkin when resolvconf not installed

Matthew R Kasun 3 years ago
parent
commit
6056d711a6
3 changed files with 14 additions and 7 deletions
  1. 2 2
      netclient/command/commands.go
  2. 4 4
      netclient/functions/checkin.go
  3. 8 1
      netclient/wireguard/common.go

+ 2 - 2
netclient/command/commands.go

@@ -99,8 +99,8 @@ func RunUserspaceDaemon() {
 }
 
 func CheckIn(cfg config.ClientConfig) error {
-	log.Println("checkin --- diabled for now")
-	return nil
+	//log.Println("checkin --- diabled for now")
+	//return nil
 	var err error
 	var errN error
 	if cfg.Network == "" {

+ 4 - 4
netclient/functions/checkin.go

@@ -156,7 +156,7 @@ func Pull(network string, manual bool) (*models.Node, error) {
 	}
 
 	node := cfg.Node
-	servercfg := cfg.Server
+	//servercfg := cfg.Server
 
 	if cfg.Node.IPForwarding == "yes" && !ncutils.IsWindows() {
 		if err = local.SetIPForwarding(); err != nil {
@@ -241,9 +241,9 @@ func Pull(network string, manual bool) (*models.Node, error) {
 			}
 		}
 	}
-	if ncutils.IsLinux() {
-		setDNS(&resNode, servercfg, &cfg.Node)
-	}
+	//if ncutils.IsLinux() {
+	//	setDNS(&resNode, servercfg, &cfg.Node)
+	//}
 	var bkupErr = config.SaveBackup(network)
 	if bkupErr != nil {
 		ncutils.Log("unable to update backup file")

+ 8 - 1
netclient/wireguard/common.go

@@ -4,6 +4,7 @@ import (
 	"errors"
 	"io/ioutil"
 	"log"
+	"os/exec"
 	"runtime"
 	"strconv"
 	"strings"
@@ -135,8 +136,14 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
 	if node.Address == "" {
 		log.Fatal("no address to configure")
 	}
-
 	var nameserver string
+	if ncutils.IsLinux() {
+		if _, err := exec.LookPath("resolvconf"); err != nil {
+			ncutils.PrintLog("resolvconf not present", 2)
+			ncutils.PrintLog("unable to configure DNS automatically, disabling automated DNS management", 2)
+			node.DNSOn = "no"
+		}
+	}
 	if node.DNSOn == "yes" {
 		nameserver = servercfg.CoreDNSAddr
 	}