summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-08-08 10:08:42 +0200
committerDavid Lönnhager <david.l@mullvad.net>2022-08-10 14:19:24 +0200
commitf4f9f5741cf8f82cdff08ee41e7842bdd1b89869 (patch)
tree44033787dd386285f110006a20ae642cc564fe07 /talpid-core/src
parentac02c329d129edb5783e267995674fc4fdb8a65d (diff)
downloadmullvadvpn-f4f9f5741cf8f82cdff08ee41e7842bdd1b89869.tar.xz
mullvadvpn-f4f9f5741cf8f82cdff08ee41e7842bdd1b89869.zip
Log slow flushing of DNS cache on Windows
Diffstat (limited to 'talpid-core/src')
-rw-r--r--talpid-core/src/dns/windows/dnsapi.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/talpid-core/src/dns/windows/dnsapi.rs b/talpid-core/src/dns/windows/dnsapi.rs
index 2d428468ff..a9232b1cb1 100644
--- a/talpid-core/src/dns/windows/dnsapi.rs
+++ b/talpid-core/src/dns/windows/dnsapi.rs
@@ -5,7 +5,7 @@ use std::{
atomic::{AtomicUsize, Ordering},
mpsc, Arc,
},
- time::Duration,
+ time::{Duration, Instant},
};
use winapi::{
shared::minwindef::{BOOL, FALSE},
@@ -105,10 +105,20 @@ impl DnsApi {
let flush_fn = self.flush_fn;
std::thread::spawn(move || {
+ let begin = Instant::now();
+
let result = if unsafe { (flush_fn)() } == FALSE {
Err(Error::FlushCache)
} else {
- log::debug!("Flushed DNS resolver cache");
+ let elapsed = begin.elapsed();
+ if elapsed >= FLUSH_TIMEOUT {
+ log::warn!(
+ "Flushing system DNS cache took {} seconds",
+ elapsed.as_secs()
+ );
+ } else {
+ log::debug!("Flushed system DNS cache");
+ }
Ok(())
};
let _ = tx.send(result);