Browse Source

more udp stuff

worker-9 4 years ago
parent
commit
9de2c644ed
1 changed files with 17 additions and 7 deletions
  1. 17 7
      netclient/wireguard/kernel.go

+ 17 - 7
netclient/wireguard/kernel.go

@@ -6,6 +6,7 @@ import (
 	"log"
 	"os"
 	"os/exec"
+	"strconv"
 	"strings"
 
 	"github.com/gravitl/netmaker/models"
@@ -257,9 +258,9 @@ func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) {
 		for _, currentPeer := range device.Peers {
 			if currentPeer.AllowedIPs[0].String() == peer.AllowedIPs[0].String() &&
 				currentPeer.PublicKey.String() != peer.PublicKey.String() {
-				_, err := local.RunCmd("wg set " + iface + " peer " + currentPeer.PublicKey.String() + " delete")
+				_, err := local.RunCmd("wg set " + iface + " peer " + currentPeer.PublicKey.String() + " remove")
 				if err != nil {
-					log.Println("error setting peer", peer.Endpoint.String())
+					log.Println("error removing peer", peer.Endpoint.String())
 				}
 			}
 		}
@@ -270,11 +271,20 @@ func SetPeers(iface string, keepalive int32, peers []wgtypes.PeerConfig) {
 			iparr = append(iparr, ipaddr.String())
 		}
 		allowedips = strings.Join(iparr, ",")
-
-		_, err = local.RunCmd("wg set " + iface + " peer " + peer.PublicKey.String() +
-			" endpoint " + udpendpoint +
-			" persistent-keepalive " + string(keepalive) +
-			" allowed-ips " + allowedips)
+		keepAliveString := strconv.Itoa(int(keepalive))
+		if keepAliveString == "0" {
+			keepAliveString = "5"
+		}
+		if peer.Endpoint != nil {
+			_, err = local.RunCmd("wg set " + iface + " peer " + peer.PublicKey.String() +
+				" endpoint " + udpendpoint +
+				" persistent-keepalive " + keepAliveString +
+				" allowed-ips " + allowedips)
+		} else {
+			_, err = local.RunCmd("wg set " + iface + " peer " + peer.PublicKey.String() +
+				" persistent-keepalive " + keepAliveString +
+				" allowed-ips " + allowedips)
+		}
 		if err != nil {
 			log.Println("error setting peer", peer.Endpoint.String())
 		}