diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-08-27 22:20:35 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-09-03 14:57:50 +0200 |
| commit | 9d4c2e92ec06ffaa6ca6a1cc17d10d8e79a3da93 (patch) | |
| tree | edd7539078f17b30c04be1d449ac8b197c5c3a07 /talpid-core/src | |
| parent | 3abb6a6d990bba6e5f659dc1373955d944122c45 (diff) | |
| download | mullvadvpn-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.rs | 27 |
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)], - ))) -} |
