summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-wireguard/src/lib.rs18
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(