From ec60dd136a54a4dfbb0fa82933989ea939c1b15d Mon Sep 17 00:00:00 2001 From: Christoph Haas Date: Fri, 18 Dec 2020 22:07:55 +0100 Subject: [PATCH] fix default mtu handling --- internal/server/usermanager.go | 3 +++ internal/wireguard/net.go | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/server/usermanager.go b/internal/server/usermanager.go index a4070ba..0de1759 100644 --- a/internal/server/usermanager.go +++ b/internal/server/usermanager.go @@ -390,6 +390,9 @@ func (u *UserManager) validateOrCreateDevice(dev wgtypes.Device, ipAddresses []s device.Mtu = 0 device.PersistentKeepalive = 16 // Default device.IPsStr = strings.Join(ipAddresses, ", ") + if mtu == wireguard.WireGuardDefaultMTU { + mtu = 0 + } device.Mtu = mtu res := u.db.Create(&device) diff --git a/internal/wireguard/net.go b/internal/wireguard/net.go index 3eca03c..57b5d11 100644 --- a/internal/wireguard/net.go +++ b/internal/wireguard/net.go @@ -7,6 +7,8 @@ import ( "github.com/milosgajdos/tenus" ) +const WireGuardDefaultMTU = 1420 + func (m *Manager) GetIPAddress() ([]string, error) { wgInterface, err := tenus.NewLinkFrom(m.Cfg.DeviceName) if err != nil { @@ -107,7 +109,7 @@ func (m *Manager) SetMTU(mtu int) error { } if mtu == 0 { - mtu = 1420 // WireGuard default MTU + mtu = WireGuardDefaultMTU } if err := wgInterface.SetLinkMTU(mtu); err != nil {