From: Kees Monshouwer Date: Tue, 29 Mar 2016 08:07:02 +0000 (+0200) Subject: DNSName makeRelative pain X-Git-Tag: dnsdist-1.0.0-beta1~28^2^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a5e5bd733294fb500e8ae425d3b9c253bed08418;p=thirdparty%2Fpdns.git DNSName makeRelative pain --- diff --git a/pdns/dnsbackend.cc b/pdns/dnsbackend.cc index e87e031072..cbe35a18b5 100644 --- a/pdns/dnsbackend.cc +++ b/pdns/dnsbackend.cc @@ -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); diff --git a/pdns/slavecommunicator.cc b/pdns/slavecommunicator.cc index b53aaac4b1..6ea0d9c94e 100644 --- a/pdns/slavecommunicator.cc +++ b/pdns/slavecommunicator.cc @@ -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); diff --git a/pdns/tcpreceiver.cc b/pdns/tcpreceiver.cc index 24d3ef93b8..5107f376c5 100644 --- a/pdns/tcpreceiver.cc +++ b/pdns/tcpreceiver.cc @@ -815,7 +815,7 @@ int TCPNameserver::doAXFR(const DNSName &target, shared_ptr 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; }