]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: document and check backend zone-cache capability 10454/head
authorKees Monshouwer <mind04@monshouwer.org>
Thu, 3 Jun 2021 06:44:38 +0000 (08:44 +0200)
committermind04 <mind04@monshouwer.org>
Thu, 3 Jun 2021 13:38:06 +0000 (15:38 +0200)
15 files changed:
docs/backends/bind.rst
docs/backends/generic-mysql.rst
docs/backends/generic-odbc.rst
docs/backends/generic-postgresql.rst
docs/backends/generic-sqlite3.rst
docs/backends/geoip.rst
docs/backends/ldap.rst
docs/backends/lmdb.rst
docs/backends/lua2.rst
docs/backends/pipe.rst
docs/backends/random.rst
docs/backends/remote.rst
docs/backends/tinydns.rst
pdns/dnsbackend.cc
pdns/dnsbackend.hh

index 4890668999214b0d137aa2195f93172aa4b642ca..1232c5df0279dd0d4df57db3e77dcb2075a40f8a 100644 (file)
@@ -10,6 +10,7 @@ BIND zone file backend
 * Disabled data: No
 * Comments: No
 * API: Read-only
+* Zone caching: Yes (except in hybrid mode)
 * Module name: bind
 * Launch: ``bind``
 
index 797dc8963072e45af58994772f487767a34d975e..9c19182e5dedd33ca4d904c1201607a9a50556e3 100644 (file)
@@ -10,6 +10,7 @@ Generic MySQL backend
 * DNSSEC: Yes (set ``gmysql-dnssec``)
 * Disabled data: Yes
 * Comments: Yes
+* Zone caching: Yes
 * Module name: gmysql
 * Launch name: ``gmysql``
 
index a2bcc423ffa51f0988b85923d5622bb17e0abc93..99fdef58a1ada530494f30794eb2a6bea5385d4d 100644 (file)
@@ -10,6 +10,7 @@ Generic ODBC Backend
 * DNSSEC: Yes
 * Disabled data: Yes
 * Comments: Yes
+* Zone caching: Yes
 * Module name: godbc
 * Launch name: ``godbc``
 
index 18f9b3abf561f5e9948397f222b75b839296f38e..b726cbe466a9413605294cead206a63352c95e7a 100644 (file)
@@ -10,6 +10,7 @@ Generic PostgreSQL backend
 * DNSSEC: Yes (set ``gpgsql-dnssec``)
 * Disabled data: Yes
 * Comments: Yes
+* Zone caching: Yes
 * Module name: gpgsql
 * Launch name: ``gpgsql``
 
index c3a5d4a538493bc2c224c5f34e27b563d4fc9336..e8e055c692b39d2d131e3dcbfbb7232753765ba4 100644 (file)
@@ -8,6 +8,7 @@ Generic SQLite 3 backend
 * DNSSEC: Yes
 * Disabled data: Yes
 * Comments: Yes
+* Zone caching: Yes
 * Module name: gsqlite3
 * Launch name: ``gsqlite3``
 
index 3829b53509d762030532221e8fc310b4d42dfb0e..4c04a818dfddc5120f0660690894bd2f073ff6ab 100644 (file)
@@ -8,6 +8,7 @@ GeoIP backend
 * DNSSEC: Yes
 * Disabled data: No
 * Comments: No
+* Zone caching: Yes
 * Module name: geoip
 * Launch name: ``geoip``
 
index 46fb40fc2deb7b08ab61726ebf43c6dbb7dc18f3..dc4289051035777da0f382d72e3cfb455ec20b30 100644 (file)
@@ -9,6 +9,7 @@ LDAP backend
 * DNSSEC: No
 * Disabled data: No
 * Comments: No
+* Zone caching: No
 * Module name: ldap
 * Launch name: ``ldap``
 
index a9fc94490e51e71c4a719e7c798b0c35fe6361e5..61b2b3cefdf196137c3ae476d4e9180703ea88f0 100644 (file)
@@ -10,6 +10,7 @@ LMDB backend
 * Disabled data: No
 * Comments: No
 * Multiple instances: No
+* Zone caching: Yes
 * Module name: lmdb
 * Launch name: ``lmdb``
 
index 07019467cb6203d9bb1c3b5b439af8643e9e86d0..e41fa996b6cf6bf7dc27f3d2e560a451feecb1a8 100644 (file)
@@ -9,6 +9,7 @@ Lua2 Backend
 * DNSSEC: Yes
 * Disabled data: No
 * Comments: No
+* Zone caching: Yes
 * Module name: lua2
 * Launch name: ``lua2``
 
index 160e2d1b78094d1e33808b19155e2d5e159b8f47..ddd01094a3c1748fefb8f944107bd738c9dc3bfe 100644 (file)
@@ -10,6 +10,7 @@ Pipe Backend
 * DNSSEC: Partial, no delegation, no key storage
 * Disabled data: No
 * Comments: No
+* Zone caching: No
 * Module name: pipe
 * Launch name: ``pipe``
 
index 919ab8f2e35e6e1132ed8ae1495fdc3a9a8859f6..6f7af49907a68c04346a3136b55f0637eecc229a 100644 (file)
@@ -10,6 +10,7 @@ Random Backend
 - DNSSEC: Yes, no key storage
 - Disabled data: No
 - Comments: No
+- Zone caching: No
 - Module name: built in
 - Launch: ``random``
 
index 3e82e3d85af7882171c2ce6c53c53907997aefba..520bbd9d73f987c20779d7fbae7feda770655508 100644 (file)
@@ -7,6 +7,7 @@ Remote Backend
 * Superslave: Yes\*
 * Autoserial: Yes\*
 * DNSSEC: Yes\*
+* Zone caching: Yes\*
 * Multiple instances: Yes
 
 \* If provided by the responder (your script).
index 61f1f65b16fdc85f6bf10295b88573981744cd41..4117baff5bb787fbfa3709e847df872d61ea9233 100644 (file)
@@ -7,6 +7,7 @@ TinyDNS Backend
 - Superslave: No
 - Autoserial: No
 - DNSSEC: No
+* Zone caching: Yes
 - Multiple Instances: Yes
 - Module name: tinydns
 - Launch: ``tinydns``
index 0e5d82ca9b1341069747b514163960249872d5d4..f2c86729c881bcde953d4bbd29f4acef0f8a39d7 100644 (file)
@@ -29,7 +29,8 @@
 #include "logger.hh"
 
 #include <sys/types.h>
-#include "pdns/packetcache.hh"
+#include "packetcache.hh"
+#include "auth-zonecache.hh"
 #include "dnspacket.hh"
 #include "dns.hh"
 #include "statbag.hh"
@@ -297,6 +298,14 @@ bool DNSBackend::getBeforeAndAfterNames(uint32_t id, const DNSName& zonename, co
   return ret;
 }
 
+void DNSBackend::getAllDomains(vector<DomainInfo>* domains, bool include_disabled)
+{
+  if (g_zoneCache.isEnabled()) {
+    g_log << Logger::Error << "One of the backends does not support zone caching. Put zone-cache-refresh-interval=0 in the config file to disable this cache." << endl;
+    exit(1);
+  }
+}
+
 void fillSOAData(const DNSZoneRecord& in, SOAData& sd)
 {
   sd.domain_id = in.domain_id;
index ffe8da1fc751315db366538ffa6ea805a2caea6b..306159ef23bb6dbb3d8430e367e0941dda54c8eb 100644 (file)
@@ -173,8 +173,7 @@ public:
     return setDomainMetadata(name, kind, meta);
   }
 
-
-  virtual void getAllDomains(vector<DomainInfo> *domains, bool include_disabled=false) { }
+  virtual void getAllDomains(vector<DomainInfo>* domains, bool include_disabled = false);
 
   /** Determines if we are authoritative for a zone, and at what level */
   virtual bool getAuth(const DNSName &target, SOAData *sd);