Fix resolv.conf repairer logic (#1931)

Stop the file repairer before doing the restore
This commit is contained in:
Zoltan Papp 2024-05-06 17:01:00 +02:00 committed by GitHub
parent 961d9198ef
commit 735ed7ab34
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -47,24 +47,20 @@ func (f *fileConfigurator) supportCustomPort() bool {
} }
func (f *fileConfigurator) applyDNSConfig(config HostDNSConfig) error { func (f *fileConfigurator) applyDNSConfig(config HostDNSConfig) error {
backupFileExist := false backupFileExist := f.isBackupFileExist()
_, err := os.Stat(fileDefaultResolvConfBackupLocation)
if err == nil {
backupFileExist = true
}
if !config.RouteAll { if !config.RouteAll {
if backupFileExist { if backupFileExist {
err = f.restore() f.repair.stopWatchFileChanges()
err := f.restore()
if err != nil { if err != nil {
return fmt.Errorf("unable to configure DNS for this peer using file manager without a Primary nameserver group. Restoring the original file return err: %w", err) return fmt.Errorf("restoring the original resolv.conf file return err: %w", err)
} }
} }
return fmt.Errorf("unable to configure DNS for this peer using file manager without a nameserver group with all domains configured") return fmt.Errorf("unable to configure DNS for this peer using file manager without a nameserver group with all domains configured")
} }
if !backupFileExist { if !backupFileExist {
err = f.backup() err := f.backup()
if err != nil { if err != nil {
return fmt.Errorf("unable to backup the resolv.conf file: %w", err) return fmt.Errorf("unable to backup the resolv.conf file: %w", err)
} }
@ -184,6 +180,11 @@ func (f *fileConfigurator) restoreUncleanShutdownDNS(storedDNSAddress *netip.Add
return nil return nil
} }
func (f *fileConfigurator) isBackupFileExist() bool {
_, err := os.Stat(fileDefaultResolvConfBackupLocation)
return err == nil
}
func restoreResolvConfFile() error { func restoreResolvConfFile() error {
log.Debugf("restoring unclean shutdown: restoring %s from %s", defaultResolvConfPath, fileUncleanShutdownResolvConfLocation) log.Debugf("restoring unclean shutdown: restoring %s from %s", defaultResolvConfPath, fileUncleanShutdownResolvConfLocation)