diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-08-10 15:32:25 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-09-06 08:46:05 -0300 |
| commit | c8c3e15715977c2c25d07d51d54e7cc3eab2191e (patch) | |
| tree | 30741ea51e4c228e770605cccd6ca31a508b805e /talpid-core/src | |
| parent | a49c90dda2c3e5e8bde886b4f1a534223971a4e7 (diff) | |
| download | mullvadvpn-c8c3e15715977c2c25d07d51d54e7cc3eab2191e.tar.xz mullvadvpn-c8c3e15715977c2c25d07d51d54e7cc3eab2191e.zip | |
Implement `is_ipv6_enabled` for Windows
Diffstat (limited to 'talpid-core/src')
| -rw-r--r-- | talpid-core/src/lib.rs | 2 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/mod.rs | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/talpid-core/src/lib.rs b/talpid-core/src/lib.rs index 55df5e135f..ecc530aec3 100644 --- a/talpid-core/src/lib.rs +++ b/talpid-core/src/lib.rs @@ -34,6 +34,8 @@ extern crate tokio_core; extern crate uuid; #[cfg(target_os = "linux")] extern crate which; +#[cfg(windows)] +extern crate winreg; extern crate openvpn_plugin; extern crate talpid_ipc; diff --git a/talpid-core/src/tunnel/mod.rs b/talpid-core/src/tunnel/mod.rs index 9ae88a70e9..6756f07416 100644 --- a/talpid-core/src/tunnel/mod.rs +++ b/talpid-core/src/tunnel/mod.rs @@ -317,5 +317,25 @@ impl CloseHandle { } fn is_ipv6_enabled_in_os() -> bool { - true + #[cfg(windows)] + { + use winreg::enums::*; + use winreg::RegKey; + + const IPV6_DISABLED: u8 = 0xFF; + + RegKey::predef(HKEY_LOCAL_MACHINE) + .open_subkey(r#"SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters"#) + .and_then(|ipv6_config| ipv6_config.get_value("DisabledComponents")) + .map(|ipv6_disabled_bits: u32| (ipv6_disabled_bits & 0xFF) == IPV6_DISABLED as u32) + .unwrap_or(false) + } + #[cfg(target_os = "linux")] + { + true + } + #[cfg(target_os = "macos")] + { + true + } } |
