فهرست منبع

Merge pull request #4 from repos-holder/windows2

Set tun parameters on windows
Ettore Di Giacinto 3 سال پیش
والد
کامیت
b9acc86531
1فایلهای تغییر یافته به همراه17 افزوده شده و 1 حذف شده
  1. 17 1
      pkg/edgevpn/interface_windows.go

+ 17 - 1
pkg/edgevpn/interface_windows.go

@@ -5,12 +5,22 @@ package edgevpn
 
 import (
 	"net"
+	"os/exec"
+	"fmt"
+	"log"
 
 	"github.com/songgao/water"
 )
 
 func (e *EdgeVPN) prepareInterface() error {
-
+	err := netsh("interface", "ip", "set", "address", "name=", e.config.InterfaceName, "static", e.config.InterfaceAddress)
+	if err != nil {
+		log.Println(err)
+	}
+	err = netsh("interface", "ipv4", "set", "subinterface", e.config.InterfaceName, "mtu=", fmt.Sprintf("%d", e.config.InterfaceMTU))
+	if err != nil {
+		log.Println(err)
+	}
 	return nil
 }
 
@@ -38,3 +48,9 @@ func (e *EdgeVPN) createInterface() (*water.Interface, error) {
 
 	return water.New(config)
 }
+
+func netsh(args ...string) (err error) {
+	cmd := exec.Command("netsh", args...)
+	err = cmd.Run()
+	return
+}