فهرست منبع

netclient working

afeiszli 3 سال پیش
والد
کامیت
28adcbb066
3فایلهای تغییر یافته به همراه17 افزوده شده و 9 حذف شده
  1. 3 1
      netclient/ncutils/netclientutils.go
  2. BIN
      netclient/netclient.syso
  3. 14 8
      netclient/wireguard/common.go

+ 3 - 1
netclient/ncutils/netclientutils.go

@@ -243,7 +243,9 @@ func GetNetworkIPMask(networkstring string) (string, string, error) {
 		return "", "", err
 	}
 	ipstring := ip.String()
-	maskstring := ipnet.Mask.String()
+	mask := ipnet.Mask
+	maskstring := fmt.Sprintf("%d.%d.%d.%d", mask[0], mask[1], mask[2], mask[3])
+	//maskstring := ipnet.Mask.String()
 	return ipstring, maskstring, err
 }
 

BIN
netclient/netclient.syso


+ 14 - 8
netclient/wireguard/common.go

@@ -1,6 +1,7 @@
 package wireguard
 
 import (
+	"errors"
 	"fmt"
 	"io/ioutil"
 	"log"
@@ -221,11 +222,22 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
 				var output string
 				starttime := time.Now()
 				ncutils.PrintLog("waiting for interface...", 1)
-				for !strings.Contains(output, ifacename) && !(time.Now().After(starttime.Add(time.Minute))) {
+				for !strings.Contains(output, ifacename) && !(time.Now().After(starttime.Add(time.Duration(10) * time.Second))) {
 					output, _ = ncutils.RunCmd("wg", false)
 					time.Sleep(time.Second >> 1)
 					err = ApplyConf(confPath)
 				}
+				if !strings.Contains(output, ifacename) {
+					return errors.New("could not create wg interface for " + ifacename)
+				}
+				ip, mask, err := ncutils.GetNetworkIPMask(nodecfg.NetworkSettings.AddressRange)
+				if err != nil {
+					log.Println(err.Error())
+					return err
+				}
+				log.Println("ip", ip)
+				log.Println("mask", mask)
+				_, _ = ncutils.RunCmd("route add "+ip+" mask "+mask+" "+node.Address, true)
 			}
 		}
 	} else {
@@ -290,13 +302,7 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
 	}
 
 	//extra network route setting required for freebsd and windows
-	if ncutils.IsWindows() {
-		ip, mask, err := ncutils.GetNetworkIPMask(nodecfg.NetworkSettings.AddressRange)
-		if err != nil {
-			return err
-		}
-		_, _ = ncutils.RunCmd("route add "+ip+" mask "+mask+" "+node.Address, true)
-	} else if ncutils.IsFreeBSD() {
+	if ncutils.IsFreeBSD() {
 		_, _ = ncutils.RunCmd("route add -net "+nodecfg.NetworkSettings.AddressRange+" -interface "+ifacename, true)
 	}