mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 16:24:19 -04:00
Fix positive replies
This commit is contained in:
@@ -25,13 +25,14 @@ func (z *Zone) Lookup(qname string, qtype uint16, do bool) ([]dns.RR, []dns.RR,
|
||||
} else {
|
||||
rr = mk()
|
||||
}
|
||||
rr.Header().Rrtype = qtype // this is pretty nonobvious
|
||||
|
||||
if qtype == dns.TypeSOA {
|
||||
return z.lookupSOA(do)
|
||||
}
|
||||
|
||||
// Misuse rr to be a question.
|
||||
rr.Header().Rrtype = qtype
|
||||
rr.Header().Name = qname
|
||||
|
||||
elem := z.Tree.Get(rr)
|
||||
if elem == nil {
|
||||
return z.nameError(elem, rr, do)
|
||||
@@ -47,6 +48,7 @@ func (z *Zone) Lookup(qname string, qtype uint16, do bool) ([]dns.RR, []dns.RR,
|
||||
if len(rrs) == 0 {
|
||||
return z.noData(elem, do)
|
||||
}
|
||||
|
||||
if do {
|
||||
sigs := elem.Types(dns.TypeRRSIG)
|
||||
sigs = signatureForSubType(sigs, qtype)
|
||||
@@ -69,7 +71,7 @@ func (z *Zone) nameError(elem *tree.Elem, rr dns.RR, do bool) ([]dns.RR, []dns.R
|
||||
return nil, ret, nil, Success
|
||||
}
|
||||
// NSECs!
|
||||
return nil, []dns.RR{z.SOA}, nil, Success
|
||||
return nil, []dns.RR{z.SOA}, nil, NameError
|
||||
}
|
||||
|
||||
func (z *Zone) lookupSOA(do bool) ([]dns.RR, []dns.RR, []dns.RR, Result) {
|
||||
@@ -94,7 +96,6 @@ func (z *Zone) lookupNSEC(elem *tree.Elem, do bool) []dns.RR {
|
||||
}
|
||||
}
|
||||
return nsec
|
||||
|
||||
}
|
||||
|
||||
func (z *Zone) lookupCNAME(rrs []dns.RR, rr dns.RR, do bool) ([]dns.RR, []dns.RR, []dns.RR, Result) {
|
||||
|
||||
Reference in New Issue
Block a user