From: Miod Vallat Date: Wed, 28 May 2025 12:45:25 +0000 (+0200) Subject: When emptying a view, purge all its packetcache data. X-Git-Tag: dnsdist-2.0.0-beta1~29^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b6e5e30aecbf51b38a1dd27b1d2dec53597974a7;p=thirdparty%2Fpdns.git When emptying a view, purge all its packetcache data. --- 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 = "";