d_isAxfr=true;
d_dnspacket = NULL;
- d_cdbReader=new CDB(getArg("dbfile"));
+ d_cdbReader=std::unique_ptr<CDB>(new CDB(getArg("dbfile")));
d_cdbReader->searchAll();
DNSResourceRecord rr;
bool TinyDNSBackend::list(const DNSName &target, int domain_id, bool include_disabled) {
d_isAxfr=true;
string key = target.toDNSString(); // FIXME400 bug: no lowercase here? or promise that from core?
- d_cdbReader=new CDB(getArg("dbfile"));
+ d_cdbReader=std::unique_ptr<CDB>(new CDB(getArg("dbfile")));
return d_cdbReader->searchSuffix(key);
}
d_qtype=qtype;
- d_cdbReader=new CDB(getArg("dbfile"));
+ d_cdbReader=std::unique_ptr<CDB>(new CDB(getArg("dbfile")));
d_cdbReader->searchKey(key);
d_dnspacket = pkt_p;
}
} // end of while
DLOG(L<<Logger::Debug<<backendname<<"No more records to return."<<endl);
- delete d_cdbReader;
+ d_cdbReader = nullptr;
return false;
}
//data member variables
uint64_t d_taiepoch;
QType d_qtype;
- CDB *d_cdbReader;
+ std::unique_ptr<CDB> d_cdbReader;
DNSPacket *d_dnspacket; // used for location and edns-client support.
bool d_isWildcardQuery; // Indicate if the query received was a wildcard query.
bool d_isAxfr; // Indicate if we received a list() and not a lookup().