From: Otto Moerbeek Date: Mon, 5 Oct 2020 15:12:42 +0000 (+0200) Subject: Cleanup of refresh determination X-Git-Tag: auth-4.4.0-alpha2~11^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07f25398f9216cb8fe67672096c0ad2d4389135b;p=thirdparty%2Fpdns.git Cleanup of refresh determination --- diff --git a/pdns/rpzloader.cc b/pdns/rpzloader.cc index 212c926052..47a0ffef4b 100644 --- a/pdns/rpzloader.cc +++ b/pdns/rpzloader.cc @@ -363,7 +363,7 @@ void RPZIXFRTracker(const std::vector& masters, boost::optionalgetRefresh(), 10U); DNSName zoneName = oldZone->getDomain(); std::string polName = oldZone->getName().empty() ? oldZone->getName() : zoneName.toString(); @@ -374,12 +374,10 @@ void RPZIXFRTracker(const std::vector& masters, boost::optional newZone = std::make_shared(*oldZone); for (const auto& master : masters) { try { - refresh = refreshFromConf ? refreshFromConf : 10U; sr = loadRPZFromServer(master, zoneName, newZone, defpol, defpolOverrideLocal, maxTTL, tt, maxReceivedBytes, localAddress, axfrTimeout); newZone->setSerial(sr->d_st.serial); newZone->setRefresh(sr->d_st.refresh); - // This period gets used below this loop - oldZone->setRefresh(sr->d_st.refresh); + refresh = std::max(refreshFromConf ? refreshFromConf : newZone->getRefresh(), 1U); setRPZZoneNewState(polName, sr->d_st.serial, newZone->size(), true); g_luaconfs.modify([zoneIdx, &newZone](LuaConfigItems& lci) { @@ -408,7 +406,6 @@ void RPZIXFRTracker(const std::vector& masters, boost::optionalgetRefresh(), 1U); bool skipRefreshDelay = isPreloaded; for(;;) { @@ -536,7 +533,7 @@ void RPZIXFRTracker(const std::vector& masters, boost::optionalgetRefresh(), 1U); + refresh = std::max(refreshFromConf ? refreshFromConf : newZone->getRefresh(), 1U); } catch (const std::exception& e) { g_log << Logger::Error << "Error while applying the update received over XFR for "<