fix: use ProgramData for Windows DNS backup path

APPDATA differs between user and admin contexts — install runs as
admin but uninstall might resolve a different APPDATA. Use
ProgramData which is consistent across elevation contexts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Razvan Dimescu
2026-04-01 12:39:38 +03:00
parent e59e25e1a1
commit 19b59d8c4c

View File

@@ -463,7 +463,13 @@ fn get_windows_interfaces() -> Result<std::collections::HashMap<String, WindowsI
#[cfg(windows)] #[cfg(windows)]
fn windows_backup_path() -> std::path::PathBuf { fn windows_backup_path() -> std::path::PathBuf {
crate::config_dir().join("original-dns.json") // Use ProgramData (not APPDATA) since install requires admin elevation
// and APPDATA differs between user and admin contexts.
std::path::PathBuf::from(
std::env::var("PROGRAMDATA").unwrap_or_else(|_| "C:\\ProgramData".into()),
)
.join("numa")
.join("original-dns.json")
} }
#[cfg(windows)] #[cfg(windows)]