diff options
author | 2016-04-09 16:17:53 +0100 | |
---|---|---|
committer | 2016-04-09 16:17:53 +0100 | |
commit | ad221f4b2afa0cf89810cd9c3b4e953913d602fc (patch) | |
tree | 23bf7561336d29096eb24d821265235f84ac4222 /middleware/file/file.go | |
parent | db3d689a8ac2bec199e5643394ffa779341acde0 (diff) | |
download | coredns-ad221f4b2afa0cf89810cd9c3b4e953913d602fc.tar.gz coredns-ad221f4b2afa0cf89810cd9c3b4e953913d602fc.tar.zst coredns-ad221f4b2afa0cf89810cd9c3b4e953913d602fc.zip |
correct EDNS responses (#96)
Tests updated as well and all the middleware. And Prometheus renamed to
metrics (directive is still prometheus).
Diffstat (limited to 'middleware/file/file.go')
-rw-r--r-- | middleware/file/file.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/middleware/file/file.go b/middleware/file/file.go index fcb1ce6e2..a81858211 100644 --- a/middleware/file/file.go +++ b/middleware/file/file.go @@ -25,6 +25,7 @@ type ( func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) { state := middleware.State{W: w, Req: r} + if state.QClass() != dns.ClassINET { return dns.RcodeServerFailure, fmt.Errorf("can only deal with ClassINET") } @@ -45,6 +46,7 @@ func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i m := new(dns.Msg) m.SetReply(r) m.Authoritative, m.RecursionAvailable, m.Compress = true, true, true + state.SizeAndDo(m) w.WriteMsg(m) log.Printf("[INFO] Notify from %s for %s: checking transfer", state.IP(), zone) @@ -93,6 +95,8 @@ func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (i case ServerFailure: return dns.RcodeServerFailure, nil } + + state.SizeAndDo(m) m, _ = state.Scrub(m) w.WriteMsg(m) return dns.RcodeSuccess, nil |