From: Peter van Dijk Date: Thu, 25 Mar 2021 11:16:19 +0000 (+0100) Subject: auth api: clear domain metadata cache after setting or deleting it X-Git-Tag: dnsdist-1.6.0-rc1~39^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d30fff94fad4a39735717d67a4ec57782a3060fc;p=thirdparty%2Fpdns.git auth api: clear domain metadata cache after setting or deleting it --- diff --git a/pdns/ws-auth.cc b/pdns/ws-auth.cc index 86e2c0ba2c..edf3bd5030 100644 --- a/pdns/ws-auth.cc +++ b/pdns/ws-auth.cc @@ -967,6 +967,8 @@ static void apiZoneMetadata(HttpRequest* req, HttpResponse *resp) { throw ApiException("Could not update metadata entries for domain '" + zonename.toString() + "'"); + DNSSECKeeper::clearMetaCache(zonename); + Json::array respMetadata; for (const string& s : vecMetadata) respMetadata.push_back(s); @@ -1032,6 +1034,8 @@ static void apiZoneMetadataKind(HttpRequest* req, HttpResponse* resp) { if (!B.setDomainMetadata(zonename, kind, vecMetadata)) throw ApiException("Could not update metadata entries for domain '" + zonename.toString() + "'"); + DNSSECKeeper::clearMetaCache(zonename); + Json::object key { { "type", "Metadata" }, { "kind", kind }, @@ -1046,6 +1050,8 @@ static void apiZoneMetadataKind(HttpRequest* req, HttpResponse* resp) { vector md; // an empty vector will do it if (!B.setDomainMetadata(zonename, kind, md)) throw ApiException("Could not delete metadata for domain '" + zonename.toString() + "' (" + kind + ")"); + + DNSSECKeeper::clearMetaCache(zonename); } else throw HttpMethodNotAllowedException(); }