From b6e5e30aecbf51b38a1dd27b1d2dec53597974a7 Mon Sep 17 00:00:00 2001 From: Miod Vallat Date: Wed, 28 May 2025 14:45:25 +0200 Subject: [PATCH] When emptying a view, purge all its packetcache data. --- pdns/ws-auth.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pdns/ws-auth.cc b/pdns/ws-auth.cc index 0463cb8a96..f583122e83 100644 --- a/pdns/ws-auth.cc +++ b/pdns/ws-auth.cc @@ -2738,12 +2738,18 @@ static void apiServerViewsDELETE(HttpRequest* req, HttpResponse* resp) throw ApiException("Failed to remove " + zoneData.zoneName.toStringFull() + " from view " + view); } // Notify zone cache of the removed association + bool emptyView{false}; if (g_zoneCache.isEnabled()) { - g_zoneCache.removeFromView(view, zoneData.zoneName); + emptyView = g_zoneCache.removeFromView(view, zoneData.zoneName); } // Purge packet cache for that zone if (PC.enabled()) { - (void)PC.purgeExact(view, zoneData.zoneName.operator const DNSName&()); + if (emptyView) { + (void)PC.purgeView(view); + } + else { + (void)PC.purgeExact(view, zoneData.zoneName.operator const DNSName&()); + } } resp->body = ""; -- 2.47.2