34 lines
1.3 KiB
Diff
34 lines
1.3 KiB
Diff
|
Index: validator/validator.c
|
||
|
===================================================================
|
||
|
--- validator/validator.c (revision 1677)
|
||
|
+++ validator/validator.c (working copy)
|
||
|
@@ -479,7 +479,7 @@
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
- * Detect wrong truncated response, by a bad recursor out there.
|
||
|
+ * Detect wrong truncated response (from BIND 9.6.1 with minimal-responses).
|
||
|
* The positive response has a mangled authority section.
|
||
|
* Remove that authority section.
|
||
|
* @param rep: reply
|
||
|
Index: iterator/iterator.c
|
||
|
===================================================================
|
||
|
--- iterator/iterator.c (revision 1677)
|
||
|
+++ iterator/iterator.c (working copy)
|
||
|
@@ -1513,9 +1513,14 @@
|
||
|
/* we know that all other NS rrsets are scrubbed
|
||
|
* away, thus on referral only one is left.
|
||
|
* see if that equals the query name... */
|
||
|
- && reply_find_rrset_section_ns(iq->response->rep,
|
||
|
+ && ( /* auth section, but sometimes in answer section*/
|
||
|
+ reply_find_rrset_section_ns(iq->response->rep,
|
||
|
qstate->qinfo.qname, qstate->qinfo.qname_len,
|
||
|
LDNS_RR_TYPE_NS, qstate->qinfo.qclass)
|
||
|
+ || reply_find_rrset_section_an(iq->response->rep,
|
||
|
+ qstate->qinfo.qname, qstate->qinfo.qname_len,
|
||
|
+ LDNS_RR_TYPE_NS, qstate->qinfo.qclass)
|
||
|
+ )
|
||
|
)) {
|
||
|
/* Store the referral under the current query */
|
||
|
if(!iter_dns_store(qstate->env, &iq->response->qinfo,
|