summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-08-27 22:20:35 +0200
committerDavid Lönnhager <david.l@mullvad.net>2025-09-03 14:57:50 +0200
commit9d4c2e92ec06ffaa6ca6a1cc17d10d8e79a3da93 (patch)
treeedd7539078f17b30c04be1d449ac8b197c5c3a07 /talpid-core/src
parent3abb6a6d990bba6e5f659dc1373955d944122c45 (diff)
downloadmullvadvpn-9d4c2e92ec06ffaa6ca6a1cc17d10d8e79a3da93.tar.xz
mullvadvpn-9d4c2e92ec06ffaa6ca6a1cc17d10d8e79a3da93.zip
Move get_system_dir to talpid-windows
Diffstat (limited to 'talpid-core/src')
-rw-r--r--talpid-core/src/dns/windows/netsh.rs27
1 files changed, 7 insertions, 20 deletions
diff --git a/talpid-core/src/dns/windows/netsh.rs b/talpid-core/src/dns/windows/netsh.rs
index fe5a135e87..2f8a4d77d1 100644
--- a/talpid-core/src/dns/windows/netsh.rs
+++ b/talpid-core/src/dns/windows/netsh.rs
@@ -2,22 +2,20 @@
use crate::dns::{DnsMonitorT, ResolvedDnsConfig};
use std::{
- ffi::OsString,
io::{self, Write},
net::IpAddr,
- os::windows::prelude::{AsRawHandle, OsStringExt},
- path::PathBuf,
+ os::windows::prelude::AsRawHandle,
process::{Child, Command, ExitStatus, Stdio},
time::Duration,
};
use talpid_types::{ErrorExt, net::IpVersion};
-use talpid_windows::net::{index_from_luid, luid_from_alias};
+use talpid_windows::{
+ env::get_system_dir,
+ net::{index_from_luid, luid_from_alias},
+};
use windows_sys::Win32::{
- Foundation::{MAX_PATH, WAIT_OBJECT_0, WAIT_TIMEOUT},
- System::{
- SystemInformation::GetSystemDirectoryW,
- Threading::{INFINITE, WaitForSingleObject},
- },
+ Foundation::{WAIT_OBJECT_0, WAIT_TIMEOUT},
+ System::Threading::{INFINITE, WaitForSingleObject},
};
const NETSH_TIMEOUT: Duration = Duration::from_secs(10);
@@ -213,14 +211,3 @@ fn create_netsh_flush_command(interface_index: u32, ip_version: IpVersion) -> St
"interface {interface_type} set dnsservers name={interface_index} source=static address=none validate=no\r\n"
)
}
-
-fn get_system_dir() -> io::Result<PathBuf> {
- let mut sysdir = [0u16; MAX_PATH as usize + 1];
- let len = unsafe { GetSystemDirectoryW(sysdir.as_mut_ptr(), (sysdir.len() - 1) as u32) };
- if len == 0 {
- return Err(io::Error::last_os_error());
- }
- Ok(PathBuf::from(OsString::from_wide(
- &sysdir[0..(len as usize)],
- )))
-}