From: Jason A. Donenfeld Date: Wed, 13 Mar 2019 08:52:32 +0000 (-0600) Subject: tun: windows: temporary hack for forcing MTU X-Git-Tag: 0.0.20190409~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b0e0ab308dd25651fa306e07071624032dab5eab;p=thirdparty%2Fwireguard-go.git tun: windows: temporary hack for forcing MTU --- diff --git a/tun/tun_windows.go b/tun/tun_windows.go index 4c48af5..579e65c 100644 --- a/tun/tun_windows.go +++ b/tun/tun_windows.go @@ -46,6 +46,7 @@ type NativeTun struct { userClose windows.Handle events chan TUNEvent errors chan error + forcedMtu int } func packetAlign(size uint32) uint32 { @@ -100,6 +101,7 @@ func CreateTUN(ifname string) (TUNDevice, error) { wrBuff: &exchgBufWrite{}, events: make(chan TUNEvent, 10), errors: make(chan error, 1), + forcedMtu: 1500, } // Create close event. @@ -220,7 +222,12 @@ func (tun *NativeTun) Close() error { } func (tun *NativeTun) MTU() (int, error) { - return 1500, nil + return tun.forcedMtu, nil +} + +//TODO: This is a temporary hack. We really need to be monitoring the interface in real time and adapting to MTU changes. +func (tun *NativeTun) ForceMtu(mtu int) { + tun.forcedMtu = mtu } func (tun *NativeTun) Read(buff []byte, offset int) (int, error) {