mirror of
https://github.com/coredns/coredns.git
synced 2025-10-28 00:34:24 -04:00
plugin/file: make non-existent file non-fatal (#2955)
* plugin/file: make non-existent file non-fatal If the zone file being loaded doesn't exist *and* reload is enabled, just wait the file to pop up in the normal Reload routine. If reload is set to 0s; we keep this a fatal error on startup. Aslo fix the ticker in z.Reload(): remove the per second ticks and just use the reload interval for the ticker. Brush up the documentation a bit as well. Fixes: #2951 Signed-off-by: Miek Gieben <miek@miek.nl> * Stickler and test compile Signed-off-by: Miek Gieben <miek@miek.nl> * Remove there too Signed-off-by: Miek Gieben <miek@miek.nl> * Cant README test these because zone files dont exist Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
@@ -5,15 +5,12 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// TickTime is clock resolution. By default ticks every second. Handler checks if reloadInterval has been reached on every tick.
|
||||
var TickTime = 1 * time.Second
|
||||
|
||||
// Reload reloads a zone when it is changed on disk. If z.NoReload is true, no reloading will be done.
|
||||
func (z *Zone) Reload() error {
|
||||
if z.ReloadInterval == 0 {
|
||||
return nil
|
||||
}
|
||||
tick := time.NewTicker(TickTime)
|
||||
tick := time.NewTicker(z.ReloadInterval)
|
||||
|
||||
go func() {
|
||||
|
||||
@@ -21,13 +18,6 @@ func (z *Zone) Reload() error {
|
||||
select {
|
||||
|
||||
case <-tick.C:
|
||||
if z.LastReloaded.Add(z.ReloadInterval).After(time.Now()) {
|
||||
//reload interval not reached yet
|
||||
continue
|
||||
}
|
||||
//saving timestamp of last attempted reload
|
||||
z.LastReloaded = time.Now()
|
||||
|
||||
zFile := z.File()
|
||||
reader, err := os.Open(zFile)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user