diff options
author | 2016-04-15 14:26:27 +0100 | |
---|---|---|
committer | 2016-04-15 14:26:27 +0100 | |
commit | c9d8a57ed66f8debe72856ec9d12c25f97248f0e (patch) | |
tree | 479358a120b6d4450e324c1f564f712e1b29f02d /middleware/file/file.go | |
parent | 29ad957a9da184e6d15c4d61de38f391ec25bdb1 (diff) | |
download | coredns-c9d8a57ed66f8debe72856ec9d12c25f97248f0e.tar.gz coredns-c9d8a57ed66f8debe72856ec9d12c25f97248f0e.tar.zst coredns-c9d8a57ed66f8debe72856ec9d12c25f97248f0e.zip |
Reload zone when a write is detected (#122)
Zone reloading
Diffstat (limited to 'middleware/file/file.go')
-rw-r--r-- | middleware/file/file.go | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/middleware/file/file.go b/middleware/file/file.go index 50ae3fd26..e44fa4cdb 100644 --- a/middleware/file/file.go +++ b/middleware/file/file.go @@ -105,27 +105,14 @@ func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i // Parse parses the zone in filename and returns a new Zone or an error. func Parse(f io.Reader, origin, fileName string) (*Zone, error) { tokens := dns.ParseZone(f, dns.Fqdn(origin), fileName) - z := NewZone(origin) + z := NewZone(origin, fileName) for x := range tokens { if x.Error != nil { log.Printf("[ERROR] Failed to parse `%s': %v", origin, x.Error) return nil, x.Error } - switch h := x.RR.Header().Rrtype; h { - case dns.TypeSOA: - z.SOA = x.RR.(*dns.SOA) - case dns.TypeNSEC3, dns.TypeNSEC3PARAM: - err := fmt.Errorf("NSEC3 zone is not supported, dropping") - log.Printf("[ERROR] Failed to parse `%s': %v", origin, err) + if err := z.Insert(x.RR); err != nil { return nil, err - case dns.TypeRRSIG: - if x, ok := x.RR.(*dns.RRSIG); ok && x.TypeCovered == dns.TypeSOA { - z.SIG = append(z.SIG, x) - continue - } - fallthrough - default: - z.Insert(x.RR) } } return z, nil |