* Disabled data: No
* Comments: No
* API: Read-only
+* Zone caching: Yes (except in hybrid mode)
* Module name: bind
* Launch: ``bind``
* DNSSEC: Yes (set ``gmysql-dnssec``)
* Disabled data: Yes
* Comments: Yes
+* Zone caching: Yes
* Module name: gmysql
* Launch name: ``gmysql``
* DNSSEC: Yes
* Disabled data: Yes
* Comments: Yes
+* Zone caching: Yes
* Module name: godbc
* Launch name: ``godbc``
* DNSSEC: Yes (set ``gpgsql-dnssec``)
* Disabled data: Yes
* Comments: Yes
+* Zone caching: Yes
* Module name: gpgsql
* Launch name: ``gpgsql``
* DNSSEC: Yes
* Disabled data: Yes
* Comments: Yes
+* Zone caching: Yes
* Module name: gsqlite3
* Launch name: ``gsqlite3``
* DNSSEC: Yes
* Disabled data: No
* Comments: No
+* Zone caching: Yes
* Module name: geoip
* Launch name: ``geoip``
* DNSSEC: No
* Disabled data: No
* Comments: No
+* Zone caching: No
* Module name: ldap
* Launch name: ``ldap``
* Disabled data: No
* Comments: No
* Multiple instances: No
+* Zone caching: Yes
* Module name: lmdb
* Launch name: ``lmdb``
* DNSSEC: Yes
* Disabled data: No
* Comments: No
+* Zone caching: Yes
* Module name: lua2
* Launch name: ``lua2``
* DNSSEC: Partial, no delegation, no key storage
* Disabled data: No
* Comments: No
+* Zone caching: No
* Module name: pipe
* Launch name: ``pipe``
- DNSSEC: Yes, no key storage
- Disabled data: No
- Comments: No
+- Zone caching: No
- Module name: built in
- Launch: ``random``
* Superslave: Yes\*
* Autoserial: Yes\*
* DNSSEC: Yes\*
+* Zone caching: Yes\*
* Multiple instances: Yes
\* If provided by the responder (your script).
- Superslave: No
- Autoserial: No
- DNSSEC: No
+* Zone caching: Yes
- Multiple Instances: Yes
- Module name: tinydns
- Launch: ``tinydns``
#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"
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;
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);