mirror of
https://github.com/netbirdio/netbird.git
synced 2025-03-03 17:31:13 +01:00
[client] Flush macOS DNS cache after changes (#3185)
This commit is contained in:
parent
78795a4a73
commit
992a6c79b4
@ -28,6 +28,7 @@ const (
|
|||||||
arraySymbol = "* "
|
arraySymbol = "* "
|
||||||
digitSymbol = "# "
|
digitSymbol = "# "
|
||||||
scutilPath = "/usr/sbin/scutil"
|
scutilPath = "/usr/sbin/scutil"
|
||||||
|
dscacheutilPath = "/usr/bin/dscacheutil"
|
||||||
searchSuffix = "Search"
|
searchSuffix = "Search"
|
||||||
matchSuffix = "Match"
|
matchSuffix = "Match"
|
||||||
localSuffix = "Local"
|
localSuffix = "Local"
|
||||||
@ -106,6 +107,10 @@ func (s *systemConfigurator) applyDNSConfig(config HostDNSConfig, stateManager *
|
|||||||
return fmt.Errorf("add search domains: %w", err)
|
return fmt.Errorf("add search domains: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := s.flushDNSCache(); err != nil {
|
||||||
|
log.Errorf("failed to flush DNS cache: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,6 +128,10 @@ func (s *systemConfigurator) restoreHostDNS() error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := s.flushDNSCache(); err != nil {
|
||||||
|
log.Errorf("failed to flush DNS cache: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -316,6 +325,21 @@ func (s *systemConfigurator) getPrimaryService() (string, string, error) {
|
|||||||
return primaryService, router, nil
|
return primaryService, router, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *systemConfigurator) flushDNSCache() error {
|
||||||
|
cmd := exec.Command(dscacheutilPath, "-flushcache")
|
||||||
|
if out, err := cmd.CombinedOutput(); err != nil {
|
||||||
|
return fmt.Errorf("flush DNS cache: %w, output: %s", err, out)
|
||||||
|
}
|
||||||
|
|
||||||
|
cmd = exec.Command("killall", "-HUP", "mDNSResponder")
|
||||||
|
if out, err := cmd.CombinedOutput(); err != nil {
|
||||||
|
return fmt.Errorf("restart mDNSResponder: %w, output: %s", err, out)
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Info("flushed DNS cache")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *systemConfigurator) restoreUncleanShutdownDNS() error {
|
func (s *systemConfigurator) restoreUncleanShutdownDNS() error {
|
||||||
if err := s.restoreHostDNS(); err != nil {
|
if err := s.restoreHostDNS(); err != nil {
|
||||||
return fmt.Errorf("restoring dns via scutil: %w", err)
|
return fmt.Errorf("restoring dns via scutil: %w", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user