summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-08-17 13:53:37 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-09-28 12:41:48 +0200
commit00973733707c669bc51c48c9eebc481c4e3f7b82 (patch)
treefe7e2d93124e63bf8aebc7956c238c81390840cb /talpid-core/src
parentce84bcf44cd923f5d178c8a39eaec6eee8165e5f (diff)
downloadmullvadvpn-00973733707c669bc51c48c9eebc481c4e3f7b82.tar.xz
mullvadvpn-00973733707c669bc51c48c9eebc481c4e3f7b82.zip
Enable wireguard-nt with temporary CLI switch
Diffstat (limited to 'talpid-core/src')
-rw-r--r--talpid-core/src/tunnel/wireguard/config.rs5
-rw-r--r--talpid-core/src/tunnel/wireguard/mod.rs22
-rw-r--r--talpid-core/src/tunnel/wireguard/wireguard_nt.rs1
3 files changed, 18 insertions, 10 deletions
diff --git a/talpid-core/src/tunnel/wireguard/config.rs b/talpid-core/src/tunnel/wireguard/config.rs
index ae82483c66..252bf8418f 100644
--- a/talpid-core/src/tunnel/wireguard/config.rs
+++ b/talpid-core/src/tunnel/wireguard/config.rs
@@ -23,6 +23,9 @@ pub struct Config {
/// Enable IPv6 routing rules
#[cfg(target_os = "linux")]
pub enable_ipv6: bool,
+ /// Temporary switch for wireguard-nt
+ #[cfg(target_os = "windows")]
+ pub use_wireguard_nt: bool,
}
const DEFAULT_MTU: u16 = 1380;
@@ -109,6 +112,8 @@ impl Config {
fwmark: crate::linux::TUNNEL_FW_MARK,
#[cfg(target_os = "linux")]
enable_ipv6: generic_options.enable_ipv6,
+ #[cfg(target_os = "windows")]
+ use_wireguard_nt: wg_options.use_wireguard_nt,
})
}
diff --git a/talpid-core/src/tunnel/wireguard/mod.rs b/talpid-core/src/tunnel/wireguard/mod.rs
index 8ecec51f4d..a3fa426ca2 100644
--- a/talpid-core/src/tunnel/wireguard/mod.rs
+++ b/talpid-core/src/tunnel/wireguard/mod.rs
@@ -355,16 +355,18 @@ impl WireguardMonitor {
}
#[cfg(target_os = "windows")]
- match wireguard_nt::WgNtTunnel::start_tunnel(config, log_path, resource_dir) {
- Ok(tunnel) => {
- log::debug!("Using WireGuardNT");
- return Ok(Box::new(tunnel));
- }
- Err(error) => {
- log::error!(
- "{}",
- error.display_chain_with_msg("Failed to setup WireGuardNT tunnel")
- );
+ if config.use_wireguard_nt {
+ match wireguard_nt::WgNtTunnel::start_tunnel(config, log_path, resource_dir) {
+ Ok(tunnel) => {
+ log::debug!("Using WireGuardNT");
+ return Ok(Box::new(tunnel));
+ }
+ Err(error) => {
+ log::error!(
+ "{}",
+ error.display_chain_with_msg("Failed to setup WireGuardNT tunnel")
+ );
+ }
}
}
diff --git a/talpid-core/src/tunnel/wireguard/wireguard_nt.rs b/talpid-core/src/tunnel/wireguard/wireguard_nt.rs
index 97207eb933..2314ee283f 100644
--- a/talpid-core/src/tunnel/wireguard/wireguard_nt.rs
+++ b/talpid-core/src/tunnel/wireguard/wireguard_nt.rs
@@ -1058,6 +1058,7 @@ mod tests {
ipv4_gateway: "0.0.0.0".parse().unwrap(),
ipv6_gateway: None,
mtu: 0,
+ use_wireguard_nt: true,
}
};
static ref WG_STRUCT_CONFIG: Interface = Interface {