mirror of
https://github.com/coredns/coredns.git
synced 2025-11-01 18:53:43 -04:00
mw/federation: use original qname in all responses (#1033)
Maybe a fix for #1031 ?
This commit is contained in:
committed by
Chris O'Haver
parent
48806fe8a6
commit
594c6d7522
@@ -73,12 +73,13 @@ func (f *Federation) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.
|
|||||||
|
|
||||||
if !middleware.ClientWrite(ret) {
|
if !middleware.ClientWrite(ret) {
|
||||||
// something went wrong
|
// something went wrong
|
||||||
|
r.Question[0].Name = qname
|
||||||
return ret, err
|
return ret, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if m := nw.Msg; m.Rcode != dns.RcodeNameError {
|
if m := nw.Msg; m.Rcode != dns.RcodeNameError {
|
||||||
// If positive answer we need to substitute the orinal qname in question and answer.
|
// If positive answer we need to substitute the original qname in the answer.
|
||||||
r.Question[0].Name = qname
|
m.Question[0].Name = qname
|
||||||
for _, a := range m.Answer {
|
for _, a := range m.Answer {
|
||||||
a.Header().Name = qname
|
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.
|
// 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
|
service, err := f.Federations(state, label, f.f[label]) // state references Req which has updated qname
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
r.Question[0].Name = qname
|
||||||
return dns.RcodeServerFailure, err
|
return dns.RcodeServerFailure, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user