From: Kees Monshouwer Date: Tue, 2 Jun 2015 14:06:06 +0000 (+0200) Subject: partial NSECx DNSName fixes X-Git-Tag: dnsdist-1.0.0-alpha1~248^2~58^2~21^2~5^2~61 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=556c611f94edc6ae5d7991ebb654331246c2f7a5;p=pdns partial NSECx DNSName fixes --- diff --git a/pdns/dnsbackend.cc b/pdns/dnsbackend.cc index 20998836d..400717f7c 100644 --- a/pdns/dnsbackend.cc +++ b/pdns/dnsbackend.cc @@ -286,12 +286,13 @@ bool DNSBackend::getBeforeAndAfterNames(uint32_t id, const DNSName& zonename, co // lcqname=labelReverse(lcqname); DNSName dnc; - string sbefore, safter; - sbefore = before.toString(); - safter = after.toString(); - bool ret = this->getBeforeAndAfterNamesAbsolute(id, qname, dnc, sbefore, safter); - before = DNSName(sbefore); - after = DNSName(safter); + string relqname, sbefore, safter; + relqname=labelReverse(makeRelative(qname.toString(), zonename.toString())); + //sbefore = before.toString(); + //safter = after.toString(); + bool ret = this->getBeforeAndAfterNamesAbsolute(id, relqname, dnc, sbefore, safter); + before = DNSName(labelReverse(sbefore)) + zonename; + after = DNSName(labelReverse(safter)) + zonename; // before=dotConcat(labelReverse(before), lczonename); FIXME // after=dotConcat(labelReverse(after), lczonename); FIXME diff --git a/pdns/dnsbackend.hh b/pdns/dnsbackend.hh index 5d3731580..b07132117 100644 --- a/pdns/dnsbackend.hh +++ b/pdns/dnsbackend.hh @@ -184,7 +184,7 @@ public: virtual bool deleteTSIGKey(const DNSName& name) { return false; } virtual bool getTSIGKeys(std::vector< struct TSIGKey > &keys) { return false; } - virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const DNSName& qname, DNSName& unhashed, string& before, string& after) + virtual bool getBeforeAndAfterNamesAbsolute(uint32_t id, const string& qname, DNSName& unhashed, string& before, string& after) { std::cerr<<"Default beforeAndAfterAbsolute called!"<