diff --git a/interface.go b/interface.go index 8d17573..2546d84 100644 --- a/interface.go +++ b/interface.go @@ -282,7 +282,7 @@ func (f *Interface) listenOut(i int) { plaintext := make([]byte, udp.MTU) h := &header.H{} fwPacket := &firewall.Packet{} - nb := make([]byte, 12, 12) + nb := make([]byte, 12) li.ListenOut(func(fromUdpAddr netip.AddrPort, payload []byte) { f.readOutsidePackets(fromUdpAddr, nil, plaintext[:0], payload, h, fwPacket, lhh, nb, i, ctCache.Get(f.l)) diff --git a/overlay/tun_linux_test.go b/overlay/tun_linux_test.go index 1c1842d..c9296a5 100644 --- a/overlay/tun_linux_test.go +++ b/overlay/tun_linux_test.go @@ -6,26 +6,27 @@ package overlay import "testing" var runAdvMSSTests = []struct { - name string - tun *tun - r Route - expected int + name string + defaultMTU int + maxMTU int + r Route + expected int }{ // Standard case, default MTU is the device max MTU - {"default", &tun{DefaultMTU: 1440, MaxMTU: 1440}, Route{}, 0}, - {"default-min", &tun{DefaultMTU: 1440, MaxMTU: 1440}, Route{MTU: 1440}, 0}, - {"default-low", &tun{DefaultMTU: 1440, MaxMTU: 1440}, Route{MTU: 1200}, 1160}, + {"default", 1440, 1440, Route{}, 0}, + {"default-min", 1440, 1440, Route{MTU: 1440}, 0}, + {"default-low", 1440, 1440, Route{MTU: 1200}, 1160}, // Case where we have a route MTU set higher than the default - {"route", &tun{DefaultMTU: 1440, MaxMTU: 8941}, Route{}, 1400}, - {"route-min", &tun{DefaultMTU: 1440, MaxMTU: 8941}, Route{MTU: 1440}, 1400}, - {"route-high", &tun{DefaultMTU: 1440, MaxMTU: 8941}, Route{MTU: 8941}, 0}, + {"route", 1440, 8941, Route{}, 1400}, + {"route-min", 1440, 8941, Route{MTU: 1440}, 1400}, + {"route-high", 1440, 8941, Route{MTU: 8941}, 0}, } func TestTunAdvMSS(t *testing.T) { for _, tt := range runAdvMSSTests { t.Run(tt.name, func(t *testing.T) { - o := tt.tun.advMSS(tt.r) + o := advMSS(tt.r, tt.defaultMTU, tt.maxMTU) if o != tt.expected { t.Errorf("got %d, want %d", o, tt.expected) }