From: Kees Monshouwer Date: Wed, 24 Jun 2015 08:51:03 +0000 (+0200) Subject: bind backend slave zone export X-Git-Tag: dnsdist-1.0.0-alpha1~248^2~58^2~21^2~5^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54ec60124982f014bfb218758f04289bd30f526b;p=thirdparty%2Fpdns.git bind backend slave zone export --- diff --git a/modules/bindbackend/bindbackend2.cc b/modules/bindbackend/bindbackend2.cc index e64fa8cae2..97d87e6440 100644 --- a/modules/bindbackend/bindbackend2.cc +++ b/modules/bindbackend/bindbackend2.cc @@ -252,36 +252,30 @@ bool Bind2Backend::abortTransaction() return true; } -bool Bind2Backend::feedRecord(const DNSResourceRecord &r, string *ordername) +bool Bind2Backend::feedRecord(const DNSResourceRecord &rr, string *ordername) { - DNSName qname=r.qname; - BB2DomainInfo bbd; safeGetBBDomainInfo(d_transaction_id, &bbd); - DNSName domain = bbd.d_name; + string name=bbd.d_name.toStringNoDot(); + string qname=rr.qname.toStringNoDot(); - qname = qname.makeRelative(domain); - if(qname.empty()) - throw DBException("out-of-zone data '"+r.qname.toStringNoDot()+"' during AXFR of zone '"+domain.toStringNoDot()+"'"); + if(!stripDomainSuffix(&qname, name)) + throw DBException("out-of-zone data '"+qname+".' during AXFR of zone '"+name+".'"); - string content=r.content; + string content=rr.content; // SOA needs stripping too! XXX FIXME - also, this should not be here I think - switch(r.qtype.getCode()) { + switch(rr.qtype.getCode()) { case QType::MX: case QType::SRV: case QType::CNAME: - case QType::NS: { - DNSName content2 = DNSName(content).makeRelative(domain); - if (content2.empty()) - content2=content; - *d_of< *ips);