UeberBackend *B=P->getBackend();
vector<DomainInfo> cmdomains;
- B->getUpdatedMasters(&cmdomains);
-
+ std::unordered_set<DNSName> catalogs;
+ CatalogHashMap catalogHashes;
+ B->getUpdatedMasters(cmdomains, catalogs, catalogHashes);
+ getUpdatedProducers(B, cmdomains, catalogs, catalogHashes);
+
if(cmdomains.empty()) {
- if(d_masterschanged)
- g_log<<Logger::Info<<"No master domains need notifications"<<endl;
- d_masterschanged=false;
+ g_log << Logger::Info << "no primary or producer domains need notifications" << endl;
}
else {
- d_masterschanged=true;
- g_log<<Logger::Notice<<cmdomains.size()<<" domain"<<(cmdomains.size()>1 ? "s" : "")<<" for which we are master need"<<
- (cmdomains.size()>1 ? "" : "s")<<
- " notifications"<<endl;
+ g_log << Logger::Info << cmdomains.size() << " domain" << addS(cmdomains.size()) << " for which we are primary or consumer need" << addS(cmdomains.size()) << " notifications" << endl;
}
- // figure out A records of everybody needing notification
- // do this via the FindNS class, d_fns
-
for(auto& di : cmdomains) {
purgeAuthCachesExact(di.zone);
+ g_zoneCache.add(di.zone, di.id);
queueNotifyDomain(di, B);
di.backend->setNotified(di.id, di.serial);
}