mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 08:14:18 -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:
@@ -129,12 +129,15 @@ func Parse(f io.Reader, origin, fileName string, serial int64) (*Zone, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if !seenSOA && serial >= 0 {
|
||||
if !seenSOA {
|
||||
if s, ok := rr.(*dns.SOA); ok {
|
||||
if s.Serial == uint32(serial) { // same serial
|
||||
seenSOA = true
|
||||
|
||||
// -1 is valid serial is we failed to load the file on startup.
|
||||
|
||||
if serial >= 0 && s.Serial == uint32(serial) { // same serial
|
||||
return nil, &serialErr{err: "no change in SOA serial", origin: origin, zone: fileName, serial: serial}
|
||||
}
|
||||
seenSOA = true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user