From d55563cac5de565ad28e5de0bbab395ae844f4bd Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Thu, 8 Feb 2024 11:20:14 +0700 Subject: [PATCH] cmd/cli: removing current forwarders during setting DNS Otherwise, old staled forwarders will be set in Windows DNS each time the OS restart. --- cmd/cli/os_windows.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmd/cli/os_windows.go b/cmd/cli/os_windows.go index f075ded..4bcbc1b 100644 --- a/cmd/cli/os_windows.go +++ b/cmd/cli/os_windows.go @@ -31,6 +31,13 @@ func setDNS(iface *net.Interface, nameservers []string) error { // Configuring the Dns server to forward queries to ctrld instead. if windowsHasLocalDnsServerRunning() { file := absHomeDir(forwardersFilename) + if data, _ := os.ReadFile(file); len(data) > 0 { + if err := removeDnsServerForwarders(strings.Split(string(data), ",")); err != nil { + mainLog.Load().Error().Err(err).Msg("could not remove current forwarders settings") + } else { + mainLog.Load().Debug().Msg("removed current forwarders settings.") + } + } if err := os.WriteFile(file, []byte(strings.Join(nameservers, ",")), 0600); err != nil { mainLog.Load().Warn().Err(err).Msg("could not save forwarders settings") }