Browse Source

fixed windows, updated wgctrl

0xdcarns 3 years ago
parent
commit
3fc4c253a8

+ 1 - 1
go.mod

@@ -28,7 +28,7 @@ require (
 	golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e // indirect
 	golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
 	golang.zx2c4.com/wireguard v0.0.0-20210805125648-3957e9b9dd19 // indirect
-	golang.zx2c4.com/wireguard/wgctrl v0.0.0-20210803171230-4253848d036c
+	golang.zx2c4.com/wireguard/wgctrl v0.0.0-20210913210325-91d1988e44de
 	golang.zx2c4.com/wireguard/windows v0.4.5 // indirect
 	google.golang.org/genproto v0.0.0-20210201151548-94839c025ad4 // indirect
 	google.golang.org/grpc v1.35.0

+ 2 - 0
go.sum

@@ -340,6 +340,8 @@ golang.zx2c4.com/wireguard/wgctrl v0.0.0-20200609130330-bd2cb7843e1b h1:l4mBVCYi
 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20200609130330-bd2cb7843e1b/go.mod h1:UdS9frhv65KTfwxME1xE8+rHYoFpbm36gOud1GhBe9c=
 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20210803171230-4253848d036c h1:ADNrRDI5NR23/TUCnEmlLZLt4u9DnZ2nwRkPrAcFvto=
 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20210803171230-4253848d036c/go.mod h1:+1XihzyZUBJcSc5WO9SwNA7v26puQwOEDwanaxfNXPQ=
+golang.zx2c4.com/wireguard/wgctrl v0.0.0-20210913210325-91d1988e44de h1:M9Jc92kgqmVmidpnOeegP2VgO2DfHEcsUWtWMmBwNFQ=
+golang.zx2c4.com/wireguard/wgctrl v0.0.0-20210913210325-91d1988e44de/go.mod h1:+1XihzyZUBJcSc5WO9SwNA7v26puQwOEDwanaxfNXPQ=
 golang.zx2c4.com/wireguard/windows v0.4.5 h1:btpw+5IM8UrSl5SILCODt1bXTM2qYpcaYArM6wDlwHA=
 golang.zx2c4.com/wireguard/windows v0.4.5/go.mod h1:LdS2bRTWu//RpztraGz5ZkPZul60cCbmgtLTPSKrS50=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=

+ 1 - 1
netclient/command/commands.go

@@ -64,7 +64,7 @@ func RunUserspaceDaemon() {
 		if err := CheckIn(cfg); err != nil {
 			// pass
 		}
-		time.Sleep(30 * time.Second)
+		time.Sleep(15 * time.Second)
 	}
 }
 

+ 1 - 6
netclient/functions/common.go

@@ -131,15 +131,10 @@ func LeaveNetwork(network string) error {
 	} else {
 		wcclient = nodepb.NewNodeServiceClient(conn)
 
-		ctx := context.Background()
-		ctx, err = auth.SetJWT(wcclient, network)
+		ctx, err := auth.SetJWT(wcclient, network)
 		if err != nil {
 			log.Printf("Failed to authenticate: %v", err)
 		} else {
-			if !ncutils.IsKernel() {
-				//wireguard.RemoveConf(node.Interface, true)
-				//ncutils.PrintLog("removed network tunnel "+node.Interface, 1)
-			}
 			node.SetID()
 			var header metadata.MD
 			_, err = wcclient.DeleteNode(

+ 3 - 1
netclient/ncutils/netclientutils.go

@@ -323,7 +323,9 @@ func Copy(src, dst string) (int64, error) {
 
 func RunCmd(command string, printerr bool) (string, error) {
 	args := strings.Fields(command)
-	out, err := exec.Command(args[0], args[1:]...).CombinedOutput()
+	cmd := exec.Command(args[0], args[1:]...)
+	cmd.Wait()
+	out, err := cmd.CombinedOutput()
 	if err != nil && printerr {
 		log.Println("error running command:", command)
 		log.Println(strings.TrimSuffix(string(out), "\n"))

+ 8 - 1
netclient/wireguard/common.go

@@ -9,6 +9,7 @@ import (
 	"runtime"
 	"strconv"
 	"strings"
+	"time"
 
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/netclient/config"
@@ -27,6 +28,7 @@ func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) error {
 		ncutils.PrintLog("failed to start wgctrl", 0)
 		return err
 	}
+
 	device, err := client.Device(iface)
 	if err != nil {
 		ncutils.PrintLog("failed to parse interface", 0)
@@ -174,7 +176,12 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
 			return err
 		}
 		// spin up userspace / windows interface + apply the conf file
-		_ = RemoveConf(ifacename, false) // remove interface first
+		d, _ := wgclient.Device(ifacename)
+		for d != nil && d.Name == ifacename {
+			_ = RemoveConf(ifacename, false) // remove interface first
+			time.Sleep(time.Second >> 2)
+			d, _ = wgclient.Device(ifacename)
+		}
 		err = ApplyConf(confPath)
 		if err != nil {
 			ncutils.PrintLog("failed to create wireguard interface", 1)

+ 1 - 1
netclient/wireguard/windows.go

@@ -3,7 +3,7 @@ package wireguard
 import "github.com/gravitl/netmaker/netclient/ncutils"
 
 func ApplyWindowsConf(confPath string) error {
-	if _, err := ncutils.RunCmd("wireguard.exe /installtunnelservice "+confPath, true); err != nil {
+	if _, err := ncutils.RunCmd("wireguard.exe /installtunnelservice "+confPath, false); err != nil {
 		return err
 	}
 	return nil