From 19b59d8c4ceae39eb5dac6b1155c02f2803f5568 Mon Sep 17 00:00:00 2001 From: Razvan Dimescu Date: Wed, 1 Apr 2026 12:39:38 +0300 Subject: [PATCH] fix: use ProgramData for Windows DNS backup path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- src/system_dns.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/system_dns.rs b/src/system_dns.rs index 3d67742..7840c7f 100644 --- a/src/system_dns.rs +++ b/src/system_dns.rs @@ -463,7 +463,13 @@ fn get_windows_interfaces() -> Result 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)]