string dir = workdir + "/" + domain.toString();
try {
g_log<<Logger::Info<<"Trying to initially load domain "<<domain<<" from disk"<<endl;
+againserial:
auto serial = getSerialFromDir(dir);
shared_ptr<SOARecordContent> soa;
uint32_t soaTTL;
loadSOAFromDisk(domain, fname, soa, soaTTL);
records_t records;
if (soa == nullptr) {
- g_log<<Logger::Error<<"Could not load SOA from disk for zone "<<domain<<", ignoring file"<<endl;
- continue;
+ g_log<<Logger::Error<<"Could not load SOA from disk for zone "<<domain<<", removing file '"<<fname<<"'"<<endl;
+ unlink(fname.c_str());
+ goto againserial;
}
loadZoneFromDisk(records, fname, domain);
auto zoneInfo = std::make_shared<ixfrinfo_t>();