From 1b6c8ddbe8f2b9ef0b07b4d5a97443c67ee2e0fd Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Sat, 20 Apr 2019 03:28:06 -0400 Subject: tun: match windows CreateTUN signature to the Linux variant Signed-off-by: Avery Pennarun [zx2c4: fix default value] --- main_windows.go | 2 +- tun/tun_windows.go | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/main_windows.go b/main_windows.go index 5380f56..f57bc8d 100644 --- a/main_windows.go +++ b/main_windows.go @@ -37,7 +37,7 @@ func main() { logger.Info.Println("Starting wireguard-go version", device.WireGuardGoVersion) logger.Debug.Println("Debug log enabled") - tun, err := tun.CreateTUN(interfaceName) + tun, err := tun.CreateTUN(interfaceName, 0) if err == nil { realInterfaceName, err2 := tun.Name() if err2 == nil { diff --git a/tun/tun_windows.go b/tun/tun_windows.go index 4b5da02..daad4aa 100644 --- a/tun/tun_windows.go +++ b/tun/tun_windows.go @@ -54,15 +54,15 @@ func nanotime() int64 // CreateTUN creates a Wintun interface with the given name. Should a Wintun // interface with the same name exist, it is reused. // -func CreateTUN(ifname string) (Device, error) { - return CreateTUNWithRequestedGUID(ifname, nil) +func CreateTUN(ifname string, mtu int) (Device, error) { + return CreateTUNWithRequestedGUID(ifname, nil, mtu) } // // CreateTUNWithRequestedGUID creates a Wintun interface with the given name and // a requested GUID. Should a Wintun interface with the same name exist, it is reused. // -func CreateTUNWithRequestedGUID(ifname string, requestedGUID *windows.GUID) (Device, error) { +func CreateTUNWithRequestedGUID(ifname string, requestedGUID *windows.GUID, mtu int) (Device, error) { var err error var wt *wintun.Interface @@ -80,12 +80,17 @@ func CreateTUNWithRequestedGUID(ifname string, requestedGUID *windows.GUID) (Dev return nil, fmt.Errorf("Error creating interface: %v", err) } + forcedMTU := 1420 + if mtu > 0 { + forcedMTU = mtu + } + tun := &NativeTun{ wt: wt, handle: windows.InvalidHandle, events: make(chan Event, 10), errors: make(chan error, 1), - forcedMTU: 1500, + forcedMTU: forcedMTU, } err = tun.rings.Init() -- cgit v1.2.3-59-g8ed1b