diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-10-22 17:02:37 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-10-23 14:38:42 +0200 |
| commit | bfcdb892e5ef86156959d9320adb092a7a606582 (patch) | |
| tree | 257aaa4b5166182d436be4737dca77f87d76b3c4 | |
| parent | 904de5ac8aa83047073aa51d8248e8b9f59465c0 (diff) | |
| download | mullvadvpn-bfcdb892e5ef86156959d9320adb092a7a606582.tar.xz mullvadvpn-bfcdb892e5ef86156959d9320adb092a7a606582.zip | |
Do not adjust MTU at all if user has overridden it
| -rw-r--r-- | talpid-wireguard/src/lib.rs | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/talpid-wireguard/src/lib.rs b/talpid-wireguard/src/lib.rs index 63ee636d6f..330f6f9c07 100644 --- a/talpid-wireguard/src/lib.rs +++ b/talpid-wireguard/src/lib.rs @@ -183,10 +183,13 @@ impl WireguardMonitor { &mut config, close_obfs_sender.clone(), ))?; - if let Some(obfuscator) = obfuscator.as_ref() { - config.mtu = config.mtu.saturating_sub(obfuscator.packet_overhead()); + // Don't adjust MTU if overridden by user + if params.options.mtu.is_none() { + if let Some(obfuscator) = obfuscator.as_ref() { + config.mtu = config.mtu.saturating_sub(obfuscator.packet_overhead()); + } + config.mtu = clamp_mtu(params, config.mtu); } - config.mtu = clamp_mtu(params, config.mtu); let endpoint_addrs: Vec<IpAddr> = config.peers().map(|peer| peer.endpoint.ip()).collect(); @@ -405,10 +408,13 @@ impl WireguardMonitor { close_obfs_sender.clone(), args.tun_provider.clone(), ))?; - if let Some(obfuscator) = obfuscator.as_ref() { - config.mtu = config.mtu.saturating_sub(obfuscator.packet_overhead()); + // Don't adjust MTU if overridden by user + if params.options.mtu.is_none() { + if let Some(obfuscator) = obfuscator.as_ref() { + config.mtu = config.mtu.saturating_sub(obfuscator.packet_overhead()); + } + config.mtu = clamp_mtu(params, config.mtu); } - config.mtu = clamp_mtu(params, config.mtu); let should_negotiate_ephemeral_peer = config.quantum_resistant || config.daita; let tunnel = Self::open_tunnel( |
