aboutsummaryrefslogtreecommitdiff
path: root/middleware
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-09-07 13:47:58 +0100
committerGravatar Chris O'Haver <cohaver@infoblox.com> 2017-09-07 08:47:58 -0400
commit594c6d7522087f81d1e43f47efe20688b9e44598 (patch)
treeb2d317ac82810f0213b7d12e826843c26674b11c /middleware
parent48806fe8a6eba70c8ca4fd0464d3620ec3b536f4 (diff)
downloadcoredns-594c6d7522087f81d1e43f47efe20688b9e44598.tar.gz
coredns-594c6d7522087f81d1e43f47efe20688b9e44598.tar.zst
coredns-594c6d7522087f81d1e43f47efe20688b9e44598.zip
mw/federation: use original qname in all responses (#1033)
Maybe a fix for #1031 ?
Diffstat (limited to 'middleware')
-rw-r--r--middleware/federation/federation.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/middleware/federation/federation.go b/middleware/federation/federation.go
index 700b74685..bc74d9fc9 100644
--- a/middleware/federation/federation.go
+++ b/middleware/federation/federation.go
@@ -73,12 +73,13 @@ func (f *Federation) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.
if !middleware.ClientWrite(ret) {
// something went wrong
+ r.Question[0].Name = qname
return ret, err
}
if m := nw.Msg; m.Rcode != dns.RcodeNameError {
- // If positive answer we need to substitute the orinal qname in question and answer.
- r.Question[0].Name = qname
+ // If positive answer we need to substitute the original qname in the answer.
+ m.Question[0].Name = qname
for _, a := range m.Answer {
a.Header().Name = qname
}
@@ -93,6 +94,7 @@ func (f *Federation) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.
// Still here, we've seen NXDOMAIN and need to perform federation.
service, err := f.Federations(state, label, f.f[label]) // state references Req which has updated qname
if err != nil {
+ r.Question[0].Name = qname
return dns.RcodeServerFailure, err
}