diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-10-21 19:09:45 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-10-22 14:47:32 +0200 |
| commit | d150bd718093d71a21cf7456371b41016004097a (patch) | |
| tree | 3f5ee082ee0b17f3d18c90e014bef934dcbf9e3e | |
| parent | 5b047ea38aff6cf72a4eaba87e87314171241050 (diff) | |
| download | mullvadvpn-d150bd718093d71a21cf7456371b41016004097a.tar.xz mullvadvpn-d150bd718093d71a21cf7456371b41016004097a.zip | |
Only apply dnscache policy on Windows 10
| -rw-r--r-- | talpid-core/src/dns/windows/mod.rs | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/talpid-core/src/dns/windows/mod.rs b/talpid-core/src/dns/windows/mod.rs index dbebcfc3e9..e3c71dab12 100644 --- a/talpid-core/src/dns/windows/mod.rs +++ b/talpid-core/src/dns/windows/mod.rs @@ -49,11 +49,13 @@ impl super::DnsMonitorT for DnsMonitor { fn new(cache_dir: impl AsRef<Path>) -> Result<Self, Error> { unsafe { WinDns_Initialize(Some(log_sink), b"WinDns\0".as_ptr()).into_result()? }; - if let Err(error) = reset_dns_cache_policy() { - error!( - "{}", - error.display_chain_with_msg("Failed to reset DNS cache policy") - ); + if is_minimum_windows10() { + if let Err(error) = reset_dns_cache_policy() { + error!( + "{}", + error.display_chain_with_msg("Failed to reset DNS cache policy") + ); + } } let backup_writer = SystemStateWriter::new( @@ -101,16 +103,22 @@ impl super::DnsMonitorT for DnsMonitor { .into_result() }?; - if let Err(error) = set_dns_cache_policy(servers) { - error!("{}", error.display_chain()); - warn!("DNS resolution may be slowed down"); + if is_minimum_windows10() { + if let Err(error) = set_dns_cache_policy(servers) { + error!("{}", error.display_chain()); + warn!("DNS resolution may be slowed down"); + } } Ok(()) } fn reset(&mut self) -> Result<(), Error> { - reset_dns_cache_policy() + if is_minimum_windows10() { + reset_dns_cache_policy() + } else { + Ok(()) + } } } @@ -120,11 +128,13 @@ fn ip_to_widestring(ip: &IpAddr) -> WideCString { impl Drop for DnsMonitor { fn drop(&mut self) { - if let Err(error) = reset_dns_cache_policy() { - warn!( - "{}", - error.display_chain_with_msg("Failed to reset DNS cache policy") - ); + if is_minimum_windows10() { + if let Err(error) = reset_dns_cache_policy() { + warn!( + "{}", + error.display_chain_with_msg("Failed to reset DNS cache policy") + ); + } } if unsafe { WinDns_Deinitialize().into_result().is_ok() } { |
