cmd/cli: removing current forwarders during setting DNS

Otherwise, old staled forwarders will be set in Windows DNS each time
the OS restart.
This commit is contained in:
Cuong Manh Le
2024-02-08 11:20:14 +07:00
committed by Cuong Manh Le
parent bb481d9bcc
commit d55563cac5

View File

@@ -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")
}