From: Pieter Lexis Date: Tue, 8 May 2018 20:47:33 +0000 (+0100) Subject: rec: Load RPZ safely from the RPZIXFRTracker X-Git-Tag: dnsdist-1.3.1~94^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed517a9a2c00814b81655d2ae518fdaafb7f063d;p=thirdparty%2Fpdns.git rec: Load RPZ safely from the RPZIXFRTracker --- diff --git a/pdns/rpzloader.cc b/pdns/rpzloader.cc index 8466b8da19..7e1b4e8377 100644 --- a/pdns/rpzloader.cc +++ b/pdns/rpzloader.cc @@ -347,16 +347,21 @@ void RPZIXFRTracker(const ComboAddress& master, boost::optional newZone = std::make_shared(*zone); try { - sr=loadRPZFromServer(master, zoneName, zone, defpol, maxTTL, tt, maxReceivedBytes, localAddress, axfrTimeout); + sr=loadRPZFromServer(master, zoneName, newZone, defpol, maxTTL, tt, maxReceivedBytes, localAddress, axfrTimeout); if(refresh == 0) { refresh = sr->d_st.refresh; } - zone->setSerial(sr->d_st.serial); - setRPZZoneNewState(polName, sr->d_st.serial, zone->size(), true); + newZone->setSerial(sr->d_st.serial); + setRPZZoneNewState(polName, sr->d_st.serial, newZone->size(), true); + + g_luaconfs.modify([zoneIdx, &newZone](LuaConfigItems& lci) { + lci.dfe.setZone(zoneIdx, newZone); + }); if (!dumpZoneFileName.empty()) { - dumpZoneToDisk(zoneName, zone, dumpZoneFileName); + dumpZoneToDisk(zoneName, newZone, dumpZoneFileName); } } catch(const std::exception& e) {