summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-07-21 17:37:50 +0200
committerDavid Lönnhager <david.l@mullvad.net>2020-07-22 13:55:31 +0200
commitc32d19c2450b1e914586df58a77c4a940be244ae (patch)
treecb16c52a5de8b64f07f202856a11f9a5b4368744
parentc7d943071e4575e8bd1c05fb2f674271c139c306 (diff)
downloadmullvadvpn-c32d19c2450b1e914586df58a77c4a940be244ae.tar.xz
mullvadvpn-c32d19c2450b1e914586df58a77c4a940be244ae.zip
Only attempt to enable IPv6 on adapter if it's enabled in the app (WireGuard on Windows)
-rw-r--r--talpid-core/src/tunnel/mod.rs22
-rw-r--r--talpid-core/src/tunnel/wireguard/wireguard_go.rs9
2 files changed, 10 insertions, 21 deletions
diff --git a/talpid-core/src/tunnel/mod.rs b/talpid-core/src/tunnel/mod.rs
index 9926116a48..37d64c85f2 100644
--- a/talpid-core/src/tunnel/mod.rs
+++ b/talpid-core/src/tunnel/mod.rs
@@ -10,8 +10,6 @@ use std::{
#[cfg(not(target_os = "android"))]
use talpid_types::net::openvpn as openvpn_types;
use talpid_types::net::{wireguard as wireguard_types, TunnelParameters};
-#[cfg(target_os = "windows")]
-use talpid_types::ErrorExt;
#[cfg(target_os = "android")]
pub use self::tun_provider::TunConfig;
@@ -241,22 +239,10 @@ impl TunnelMonitor {
let options = tunnel_parameters.get_generic_options();
#[cfg(target_os = "windows")]
- match tunnel_parameters {
- TunnelParameters::OpenVpn(..) => {
- if options.enable_ipv6 {
- try_enabling_ipv6(tunnel_parameters)
- } else {
- Ok(())
- }
- }
- TunnelParameters::Wireguard(..) => {
- // WireGuard always waits on an IPv6 interface,
- // even if it's not in use
- if let Err(e) = try_enabling_ipv6(tunnel_parameters) {
- log::error!("{}", e.display_chain_with_msg("Failed to enable IPv6"));
- }
- Ok(())
- }
+ if options.enable_ipv6 {
+ try_enabling_ipv6(tunnel_parameters)
+ } else {
+ Ok(())
}
#[cfg(not(target_os = "windows"))]
diff --git a/talpid-core/src/tunnel/wireguard/wireguard_go.rs b/talpid-core/src/tunnel/wireguard/wireguard_go.rs
index 61e722d442..761276dcdf 100644
--- a/talpid-core/src/tunnel/wireguard/wireguard_go.rs
+++ b/talpid-core/src/tunnel/wireguard/wireguard_go.rs
@@ -126,9 +126,12 @@ impl WgGoTunnel {
.map(LoggingContext)
.map_err(TunnelError::LoggingError)?;
- let wait_on_ipv6 = config.ipv6_gateway.is_some() ||
- config.tunnel.addresses.iter().any(|ip| ip.is_ipv6()) ||
- config.peers.iter().any(|config| config.allowed_ips.iter().any(|ip| ip.is_ipv6()));
+ let wait_on_ipv6 = config.ipv6_gateway.is_some()
+ || config.tunnel.addresses.iter().any(|ip| ip.is_ipv6())
+ || config
+ .peers
+ .iter()
+ .any(|config| config.allowed_ips.iter().any(|ip| ip.is_ipv6()));
let handle = unsafe {
wgTurnOn(