mirror of
https://github.com/coredns/coredns.git
synced 2026-05-25 19:30:23 -04:00
plugin/file: trigger reload of zones based on mtime (#8085)
* Added fs.FileInfo.ModTime() based reload feature Signed-off-by: Endre Szabo <git@end.re> * Updated the plugin documentation. Signed-off-by: Endre Szabo <git@end.re> --------- Signed-off-by: Endre Szabo <git@end.re>
This commit is contained in:
@@ -20,13 +20,26 @@ func (z *Zone) Reload(t *transfer.Transfer) error {
|
||||
select {
|
||||
case <-tick.C:
|
||||
zFile := z.File()
|
||||
serial := z.SOASerialIfDefined()
|
||||
|
||||
if z.ReloadByMtime {
|
||||
fi, err := os.Stat(zFile)
|
||||
if err != nil {
|
||||
log.Errorf("Failed to stat zone %q in %q: %v", z.origin, zFile, err)
|
||||
continue
|
||||
}
|
||||
if !fi.ModTime().After(z.file_mtime) {
|
||||
continue
|
||||
}
|
||||
serial = 0 // force reload of the zone
|
||||
}
|
||||
|
||||
reader, err := os.Open(filepath.Clean(zFile))
|
||||
if err != nil {
|
||||
log.Errorf("Failed to open zone %q in %q: %v", z.origin, zFile, err)
|
||||
continue
|
||||
}
|
||||
|
||||
serial := z.SOASerialIfDefined()
|
||||
zone, err := Parse(reader, z.origin, zFile, serial)
|
||||
reader.Close()
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user