]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
set of labelReverse incorrect migrations, two of which likely are still incorrect
authorbert hubert <bert.hubert@netherlabs.nl>
Mon, 5 Sep 2016 09:02:32 +0000 (11:02 +0200)
committerbert hubert <bert.hubert@powerdns.com>
Tue, 13 Sep 2016 10:53:30 +0000 (12:53 +0200)
modules/bindbackend/bindbackend2.cc
modules/luabackend/dnssec.cc
pdns/dnsbackend.cc
pdns/slavecommunicator.cc
pdns/tcpreceiver.cc
pdns/zone2sql.cc

index 9be212f0d718041b90d1b4c8b77e367e9cb1ab5f..bf5b1139ffc2dd565a914ed8e4769abf4c30d149 100644 (file)
@@ -993,7 +993,7 @@ bool Bind2Backend::getBeforeAndAfterNamesAbsolute(uint32_t id, const std::string
     nsec3zone=getNSEC3PARAM(auth, &ns3pr);
 
   if(!nsec3zone) {
-    DNSName dqname = DNSName(qname).labelReverse();
+    DNSName dqname(DNSName(qname).labelReverse().toString(" ", false)); // the horror
     //cerr<<"in bind2backend::getBeforeAndAfterAbsolute: no nsec3 for "<<auth<<endl;
     return findBeforeAndAfterUnhashed(bbd, dqname, unhashed, before, after);
   }
index e3274f1cad52991b967ceea52ed49b4d09c8a57a..86280e9ecd3593c18de3ea59a1a1b50c1aa3c2dd 100644 (file)
@@ -36,7 +36,7 @@ bool LUABackend::updateDNSSECOrderAndAuth(uint32_t domain_id, const DNSName& zon
        if(logging)
            L << Logger::Info << backend_name << "(updateDNSSECOrderAndAuth) domain_id: '" << domain_id << "' zonename: '" << zonename << "' qname: '" << qname << "' auth: '" << auth << "'" << endl;
            
-       string ins=qname.makeRelative(zonename).makeLowerCase().labelReverse().toString();
+       string ins=qname.makeRelative(zonename).makeLowerCase().labelReverse().toString(" ", false);
        return this->updateDNSSECOrderAndAuthAbsolute(domain_id, qname, ins, auth);
     } 
 
index 403fcf8f412b333bf760a2f9c665cc61927fc68e..5617764ad07b6754557b5f82368c445072d9a0c5 100644 (file)
@@ -285,10 +285,12 @@ bool DNSBackend::getBeforeAndAfterNames(uint32_t id, const DNSName& zonename, co
   // lcqname=labelReverse(lcqname);
   DNSName dnc;
   string relqname, sbefore, safter;
-  relqname=qname.makeRelative(zonename).toStringNoDot();
+  relqname=qname.makeRelative(zonename).labelReverse().toString(" ", false);
   //sbefore = before.toString();
   //safter = after.toString();
   bool ret = this->getBeforeAndAfterNamesAbsolute(id, relqname, dnc, sbefore, safter);
+  boost::replace_all(sbefore, " ", ".");
+  boost::replace_all(safter, " ", ".");
   before = DNSName(sbefore).labelReverse() + lczonename;
   after = DNSName(safter).labelReverse() + lczonename;
 
index 479c786ed2090e1544d135c01d364ec6665468f2..2b8c9845d8b5906984a507f6ebb4691297b41775 100644 (file)
@@ -547,7 +547,7 @@ void CommunicatorClass::suck(const DNSName &domain, const string &remote)
         } else {
           // NSEC
           if (rr.auth || rr.qtype.getCode() == QType::NS) {
-            ordername=rr.qname.makeRelative(domain).makeLowerCase().labelReverse().toStringNoDot(); 
+            ordername=rr.qname.makeRelative(domain).makeLowerCase().labelReverse().toString(" ", false); 
             di.backend->feedRecord(rr, &ordername);
           } else
             di.backend->feedRecord(rr);
index 084b27dbbd0c7756a695c36c5786cb3cfb66648f..564ac0df7e915c4cd3176c837ae71ed3ae873db2 100644 (file)
@@ -877,7 +877,7 @@ int TCPNameserver::doAXFR(const DNSName &target, shared_ptr<DNSPacket> q, int ou
     records++;
     if(securedZone && (zrr.auth || zrr.dr.d_type == QType::NS)) {
       if (NSEC3Zone || zrr.dr.d_type) {
-        keyname = NSEC3Zone ? hashQNameWithSalt(ns3pr, zrr.dr.d_name) : zrr.dr.d_name.labelReverse().toString();
+        keyname = NSEC3Zone ? hashQNameWithSalt(ns3pr, zrr.dr.d_name) : zrr.dr.d_name.labelReverse().toString(" ", false);
         NSECXEntry& ne = nsecxrepo[keyname];
         ne.d_ttl = sd.default_ttl;
         ne.d_auth = (ne.d_auth || zrr.auth || (NSEC3Zone && (!ns3pr.d_flags || (presignedZone && ns3pr.d_flags))));
@@ -967,12 +967,12 @@ int TCPNameserver::doAXFR(const DNSName &target, shared_ptr<DNSPacket> q, int ou
       nrc.d_set.insert(QType::RRSIG);
       nrc.d_set.insert(QType::NSEC);
       if(boost::next(iter) != nsecxrepo.end()) {
-        nrc.d_next = DNSName(boost::next(iter)->first).labelReverse();
+        nrc.d_next = DNSName(boost::next(iter)->first).labelReverse();  // XXX likely we need to do the spaces thing here
       }
       else
-        nrc.d_next=DNSName(nsecxrepo.begin()->first).labelReverse();
+        nrc.d_next=DNSName(nsecxrepo.begin()->first).labelReverse();     // XXX likely we need to do the spaces thing here
   
-      zrr.dr.d_name = DNSName(iter->first).labelReverse();
+      zrr.dr.d_name = DNSName(iter->first).labelReverse();  // XXX likely we need to do the spaces thing here
   
       zrr.dr.d_ttl = sd.default_ttl;
       zrr.dr.d_content = std::make_shared<NSECRecordContent>(nrc);
index 3086184d20efef4f5e7f05876e8e9207c9e1ada4..b4a6ff0cd9d62178241dd6eef4f41dd02f1e38f6 100644 (file)
@@ -202,7 +202,7 @@ static void emitRecord(const DNSName& zoneName, const DNSName &DNSqname, const s
   else if(g_mode==POSTGRES) {
     cout<<"insert into records (domain_id, name, ordername, auth, type,content,ttl,prio,disabled) select id ,"<<
       sqlstr(toLower(qname))<<", "<<
-      sqlstr(DNSName(qname).makeRelative(DNSName(zname)).makeLowerCase().labelReverse().toStringNoDot())<<", '"<< (auth  ? 't' : 'f') <<"', "<<
+      sqlstr(DNSName(qname).makeRelative(DNSName(zname)).makeLowerCase().labelReverse().toString(" ", false))<<", '"<< (auth  ? 't' : 'f') <<"', "<<
       sqlstr(qtype)<<", "<<
       sqlstr(stripDotContent(content))<<", "<<ttl<<", "<<prio<<", '"<<(disabled ? 't': 'f') <<
       "' from domains where name="<<toLower(sqlstr(zname))<<";\n";