without an id, in bind and lmdb backend.
do {
found = safeGetBBDomainInfo(domain, &bbd);
- } while ((!found || (zoneId != (int)bbd.d_id && zoneId != -1)) && domain.chopOff());
+ } while ((!found || (zoneId != (int)bbd.d_id && zoneId != -1)) && qtype != QType::SOA && domain.chopOff());
if(!found) {
if(mustlog)
d_dtime.set();
}
DNSName hunt(qdomain);
+ DomainInfo di;
if(zoneId < 0) {
auto rotxn = d_tdomains->getROTransaction();
- for(;;) {
- DomainInfo di;
- if((zoneId = rotxn.get<0>(hunt, di))) {
- break;
- }
- if(!hunt.chopOff())
- break;
- }
+ do {
+ zoneId = rotxn.get<0>(hunt, di);
+ } while (!zoneId && type != QType::SOA && hunt.chopOff());
if(zoneId <= 0) {
// cout << "Did not find zone for "<< qdomain<<endl;
d_getcursor.reset();
}
}
else {
- DomainInfo di;
if(!d_tdomains->getROTransaction().get(zoneId, di)) {
// cout<<"Could not find a zone with id "<<zoneId<<endl;
d_getcursor.reset();