]> granicus.if.org Git - pdns/commitdiff
DNSName makeRelative pain
authorKees Monshouwer <mind04@monshouwer.org>
Tue, 29 Mar 2016 08:07:02 +0000 (10:07 +0200)
committermind04 <mind04@monshouwer.org>
Tue, 29 Mar 2016 08:07:02 +0000 (10:07 +0200)
pdns/dnsbackend.cc
pdns/slavecommunicator.cc
pdns/tcpreceiver.cc

index e87e0310720d90531fc5c69b31c34f052e2d5c43..cbe35a18b54bf631da5dc2b4d5e311e78057b61c 100644 (file)
@@ -294,7 +294,7 @@ bool DNSBackend::getBeforeAndAfterNames(uint32_t id, const DNSName& zonename, co
   // lcqname=labelReverse(lcqname);
   DNSName dnc;
   string relqname, sbefore, safter;
-  relqname=labelReverse(makeRelative(qname.toString(), zonename.toString()));
+  relqname=labelReverse(makeRelative(qname.toStringNoDot(), zonename.toStringNoDot())); // FIXME400
   //sbefore = before.toString();
   //safter = after.toString();
   bool ret = this->getBeforeAndAfterNamesAbsolute(id, relqname, dnc, sbefore, safter);
index b53aaac4b19cbd8bc44306dda786d9bd57d0f289..6ea0d9c94e9a0862eb88e90744ba20f68610435a 100644 (file)
@@ -190,8 +190,10 @@ void CommunicatorClass::suck(const DNSName &domain,const string &remote)
               } else if (optOutFlag != (ns3rc.d_flags & 1))
                 throw PDNSException("Zones with a mixture of Opt-Out NSEC3 RRs and non-Opt-Out NSEC3 RRs are not supported.");
               optOutFlag = ns3rc.d_flags & 1;
-              if (ns3rc.d_set.count(QType::NS) && !(rr.qname==domain))
-                secured.insert(DNSName(toLower(makeRelative(rr.qname.toString(), domain.toString())))); // XXX DNSName pain
+              if (ns3rc.d_set.count(QType::NS) && !(rr.qname==domain)) {
+                DNSName hashPart = DNSName(toLower(rr.qname.makeRelative(domain).toString()));
+                secured.insert(hashPart);
+              }
               continue;
             }
             case QType::NSEC: {
@@ -362,7 +364,7 @@ void CommunicatorClass::suck(const DNSName &domain,const string &remote)
         } else {
           // NSEC
           if (rr.auth || rr.qtype.getCode() == QType::NS) {
-            ordername=toLower(labelReverse(makeRelative(rr.qname.toString(), domain.toString())));
+            ordername=toLower(labelReverse(makeRelative(rr.qname.toStringNoDot(), domain.toStringNoDot()))); // FIXME400
             di.backend->feedRecord(rr, &ordername);
           } else
             di.backend->feedRecord(rr);
index 24d3ef93b802fb41f90577cbd6e7f79fe4f74aaa..5107f376c5a582bfa8c150c2624d93ae924fd339 100644 (file)
@@ -815,7 +815,7 @@ int TCPNameserver::doAXFR(const DNSName &target, shared_ptr<DNSPacket> q, int ou
     if (rr.qtype.getCode() == QType::RRSIG) {
       RRSIGRecordContent rrc(rr.content);
       if(presignedZone && rrc.d_type == QType::NSEC3)
-        ns3rrs.insert(fromBase32Hex(makeRelative(rr.qname.toString(), target.toString())));
+        ns3rrs.insert(fromBase32Hex(makeRelative(rr.qname.toStringNoDot(), target.toStringNoDot()))); // FIXME400
       continue;
     }