Browse Source

Merge pull request #725 from gravitl/v0.10.0

V0.10.0
dcarns 3 years ago
parent
commit
9e3f544842
1 changed files with 10 additions and 3 deletions
  1. 10 3
      logic/wireguard.go

+ 10 - 3
logic/wireguard.go

@@ -94,7 +94,14 @@ func initWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
 
 
 	if ncutils.IsKernel() {
 	if ncutils.IsKernel() {
 		logger.Log(2, "setting kernel device", ifacename)
 		logger.Log(2, "setting kernel device", ifacename)
-		setKernelDevice(ifacename, node.Address)
+		network, err := GetNetwork(node.Network)
+		if err != nil {
+			logger.Log(0, "failed to get network"+err.Error())
+			return err
+		}
+		net := strings.Split(network.AddressRange, "/")
+		mask := net[len(net)-1]
+		setKernelDevice(ifacename, node.Address, mask)
 	}
 	}
 
 
 	nodeport := int(node.ListenPort)
 	nodeport := int(node.ListenPort)
@@ -184,7 +191,7 @@ func initWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
 	return err
 	return err
 }
 }
 
 
-func setKernelDevice(ifacename string, address string) error {
+func setKernelDevice(ifacename, address, mask string) error {
 	ipExec, err := exec.LookPath("ip")
 	ipExec, err := exec.LookPath("ip")
 	if err != nil {
 	if err != nil {
 		return err
 		return err
@@ -193,7 +200,7 @@ func setKernelDevice(ifacename string, address string) error {
 	// == best effort ==
 	// == best effort ==
 	ncutils.RunCmd("ip link delete dev "+ifacename, false)
 	ncutils.RunCmd("ip link delete dev "+ifacename, false)
 	ncutils.RunCmd(ipExec+" link add dev "+ifacename+" type wireguard", true)
 	ncutils.RunCmd(ipExec+" link add dev "+ifacename+" type wireguard", true)
-	ncutils.RunCmd(ipExec+" address add dev "+ifacename+" "+address+"/24", true) // this is a bug waiting to happen
+	ncutils.RunCmd(ipExec+" address add dev "+ifacename+" "+address+"/"+mask, true) // this was a bug waiting to happen
 
 
 	return nil
 	return nil
 }
 }