From: Bert Hubert Date: Thu, 30 Dec 2010 21:20:06 +0000 (+0000) Subject: stop bind backend from crashing on domains that are not found, plus fix up canonical... X-Git-Tag: auth-3.0~473 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=76faefcfb7ae99d70da9019e5008954cab99d809;p=pdns stop bind backend from crashing on domains that are not found, plus fix up canonical ordering issues git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1774 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- diff --git a/pdns/backends/bind/bindbackend2.cc b/pdns/backends/bind/bindbackend2.cc index 1c0cf2ec8..3dd3f5381 100644 --- a/pdns/backends/bind/bindbackend2.cc +++ b/pdns/backends/bind/bindbackend2.cc @@ -792,13 +792,11 @@ void Bind2Backend::queueReload(BB2DomainInfo *bbd) bool Bind2Backend::findBeforeAndAfterUnhashed(BB2DomainInfo& bbd, const std::string& qname, std::string& unhashed, std::string& before, std::string& after) { - string domain=toLower(qname); - string lname = labelReverse(domain); - cout<<"starting lower bound for: '"<begin(), bbd.d_records->end(), lname); + recordstorage_t::const_iterator iter = lower_bound(bbd.d_records->begin(), bbd.d_records->end(), domain); while(iter != bbd.d_records->begin() && !boost::prior(iter)->auth && boost::prior(iter)->qtype!=QType::NS) { cerr<<"Going backwards.."<begin(), bbd.d_records->end(), lname); + iter = upper_bound(bbd.d_records->begin(), bbd.d_records->end(), domain); while(iter!=bbd.d_records->end() && (!iter->auth && iter->qtype != QType::NS)) iter++; if(iter == bbd.d_records->end()) { - cerr<<"\tFound the end!"<begin()->qname), bbd.d_name); + cerr<<"\tFound the end, begin storage: '"<begin()->qname<<"', '"<qname<<"'"<qname; @@ -978,6 +976,7 @@ void Bind2Backend::lookup(const QType &qtype, const string &qname, DNSPacket *pk if(range.first==range.second) { // cerr<<"Found nothign!"<