return nullptr;
}
-static void activateRPZFile(const RPZTrackerParams& params, LuaConfigItems& lci, shared_ptr<DNSFilterEngine::Zone>& zone)
+static bool activateRPZFile(const RPZTrackerParams& params, LuaConfigItems& lci, shared_ptr<DNSFilterEngine::Zone>& zone)
{
auto log = lci.d_slog->withValues("file", Logging::Loggable(params.name));
catch (const std::exception& e) {
SLOG(g_log << Logger::Error << "Unable to load RPZ zone from '" << params.name << "': " << e.what() << endl,
log->error(Logr::Error, e.what(), "Exception while loading RPZ zone from file"));
+ zone->clear();
+ return false;
}
+ return true;
}
static void activateRPZPrimary(RPZTrackerParams& params, LuaConfigItems& lci, shared_ptr<DNSFilterEngine::Zone>& zone, const DNSName& domain)
zone->setIgnoreDuplicates(params.ignoreDuplicates);
if (params.primaries.empty()) {
- activateRPZFile(params, lci, zone);
- lci.dfe.addZone(zone);
+ if (activateRPZFile(params, lci, zone)) {
+ lci.dfe.addZone(zone);
+ }
}
else {
DNSName domain(params.name);
SLOG(g_log << Logger::Error << "Failed to update . records, got an exception: " << e.reason << endl,
log->error(Logr::Error, e.reason, msg, "exception", Logging::Loggable("ImmediateServFailException")));
}
- catch (const PolicyHitException& e) {
+ catch (const PolicyHitException& policyHit) {
SLOG(g_log << Logger::Error << "Failed to update . records, got a policy hit" << endl,
- log->info(Logr::Error, msg, "exception", Logging::Loggable("PolicyHitException")));
+ log->info(Logr::Error, msg, "exception", Logging::Loggable("PolicyHitException"),
+ "policyName", Logging::Loggable(resolver.d_appliedPolicy.getName())));
ret.clear();
}
catch (const std::exception& e) {