This solves where the zone contains 'france.example.com NS somewhere.com' and a query comes in for 'france.example.com'
This problem was new in 2.9.19, caused by the cname/wildcard patches
(plus removal of an unused file)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@539
d19b8d6e-7fed-0310-83ef-
9ca221ded41b
int hits=0;
while(B.get(rr)) {
- hits++;
+ if(rr.qtype.getCode()!=QType::NS || p->qtype.getCode()==QType::NS)
+ hits++;
if(!rfound && rr.qtype.getCode()==QType::CNAME) {
found=true;
r->addRecord(rr);
mret=makeCanonic(p, r, target); // traverse CNAME chain until we have a useful record (may actually give the correct answer!)
if(mret==2) { // there is some data, but not of the correct type
+ DLOG(L<<"There is some data, but not of the correct type"<<endl);
SOAData sd;
if(getAuth(p, &sd, target, 0)) {
rr.qname=sd.qname;
-0 text.example.com. IN TXT 120 "hi, this is some text"
+0 text.example.com. IN TXT 120 "Hi, this is some text"
Rcode: 0, RD: 0, TC: 0, AA: 1, opcode: 0
Reply to question for qname='text.example.com.', qtype=TXT
+++ /dev/null
-
-;; ->>HEADER<<- opcode: QUERY, status: NOERROR
-;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2
-;; QUERY SECTION:
-;; www.usa.example.com, type = A, class = IN
-
-;; AUTHORITY SECTION:
-usa.example.com. 2M IN NS usa-ns1.usa.example.com.
-usa.example.com. 2M IN NS usa-ns2.usa.example.com.
-
-;; ADDITIONAL SECTION:
-usa-ns1.usa.example.com. 2M IN A 192.168.4.1
-usa-ns2.usa.example.com. 2M IN A 192.168.4.2
-
-
--- /dev/null
+#!/bin/sh
+cleandig france.example.com A
--- /dev/null
+A referral with the same name as the NS record itself. This broke in 2.9.19.
--- /dev/null
+1 france.example.com. IN NS 120 ns1.otherprovider.net.
+1 france.example.com. IN NS 120 ns2.otherprovider.net.
+Rcode: 0, RD: 0, TC: 0, AA: 0, opcode: 0
+Reply to question for qname='france.example.com.', qtype=A