Changeset 2136

Show
Ignore:
Timestamp:
04/04/11 10:29:47 (2 years ago)
Author:
ahu
Message:

more properaly fake the 'auth' status of data in unmigrated non-dnsssec backends, again discovered by Frank Altpeter

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pdns/pdns/packethandler.cc

    r2126 r2136  
    12761276     
    12771277    while(B.get(rr)) { 
     1278      // cerr<<"Auth: "<<rr.auth<<", "<<(rr.qtype == p->qtype)<<", "<<rr.qtype.getName()<<endl; 
    12781279      if((p->qtype.getCode() == QType::ANY || rr.qtype == p->qtype) && rr.auth)  
    12791280        weDone=1; 
    1280       if((rr.qtype == p->qtype && !rr.auth) || rr.qtype.getCode() == QType::NS)  
     1281      // the line below fakes 'unauth NS' for delegations for non-DNSSEC backends. 
     1282      if((rr.qtype == p->qtype && !rr.auth) || (rr.qtype.getCode() == QType::NS && (!rr.auth || !pdns_iequals(sd.qname, rr.qname)))) 
    12811283        weHaveUnauth=1; 
    12821284 
     
    12861288    } 
    12871289 
    1288     //cerr<<"After first ANY query: weDone="<<weDone<<", weHaveUnauth="<<weHaveUnauth<<", weRedirected="<<weRedirected<<endl; 
     1290    DLOG(L<<"After first ANY query: weDone="<<weDone<<", weHaveUnauth="<<weHaveUnauth<<", weRedirected="<<weRedirected<<endl); 
    12891291 
    12901292    if(rrset.empty()) { 
     
    13171319        } 
    13181320      } 
    1319            
    13201321    } 
    13211322    else if(weDone) { 
     
    13321333    } 
    13331334    else if(weHaveUnauth) { 
    1334        
    13351335      DLOG(L<<"Have unauth data, so need to hunt for best NS records"<<endl); 
    13361336      if(tryReferral(p, r, sd, target))