tun: windows: temporary hack for forcing MTU

This commit is contained in:
Jason A. Donenfeld 2019-03-13 02:52:32 -06:00
parent 66fb5caf02
commit b0e0ab308d

View File

@ -46,6 +46,7 @@ type NativeTun struct {
userClose windows.Handle userClose windows.Handle
events chan TUNEvent events chan TUNEvent
errors chan error errors chan error
forcedMtu int
} }
func packetAlign(size uint32) uint32 { func packetAlign(size uint32) uint32 {
@ -100,6 +101,7 @@ func CreateTUN(ifname string) (TUNDevice, error) {
wrBuff: &exchgBufWrite{}, wrBuff: &exchgBufWrite{},
events: make(chan TUNEvent, 10), events: make(chan TUNEvent, 10),
errors: make(chan error, 1), errors: make(chan error, 1),
forcedMtu: 1500,
} }
// Create close event. // Create close event.
@ -220,7 +222,12 @@ func (tun *NativeTun) Close() error {
} }
func (tun *NativeTun) MTU() (int, 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) { func (tun *NativeTun) Read(buff []byte, offset int) (int, error) {