Synthesise CNAME records from DNAME records as required. This approximately
doubles query load. **Do not combine with DNSSEC!**
-## `dns-key-cache-ttl`
+## `dnssec-key-cache-ttl`
* Integer
* Default: 30
-Seconds to store domain DNS keys in cache.
+Seconds to cache DNSSEC keys from the database. A value of 0 disables caching.
## `dnsupdate`
* Boolean
* Integer
* Default: 60
-Seconds to store domain metadata in cache.
+Seconds to cache domain metadata from the database. A value of 0 disables caching.
## `edns-subnet-option-number`
* Integer
::arg().set("soa-expire-default","Default SOA expire")="604800";
::arg().set("default-soa-edit","Default SOA-EDIT value")="";
::arg().set("default-soa-edit-signed","Default SOA-EDIT value for signed zones")="";
- ::arg().set("dns-key-cache-ttl","Seconds to store domain DNS keys in cache")="30";
- ::arg().set("domain-metadata-cache-ttl","Seconds to store domain metadata in cache")="60";
+ ::arg().set("dnssec-key-cache-ttl","Seconds to cache DNSSEC keys from the database")="30";
+ ::arg().set("domain-metadata-cache-ttl","Seconds to cache domain metadata from the database")="60";
::arg().set("trusted-notification-proxy", "IP address of incoming notification proxy")="";
::arg().set("slave-renotify", "If we should send out notifications for slaved updates")="no";
void DNSSECKeeper::getFromMeta(const DNSName& zname, const std::string& key, std::string& value)
{
+ static int ttl = ::arg().asNum("domain-metadata-cache-ttl");
value.clear();
unsigned int now = time(0);
cleanup();
}
- {
+ if (ttl > 0) {
ReadLock l(&s_metacachelock);
metacache_t::const_iterator iter = s_metacache.find(tie(zname, key));
d_keymetadb->getDomainMetadata(zname, key, meta);
if(!meta.empty())
value=*meta.begin();
-
- METACacheEntry nce;
- nce.d_domain=zname;
- nce.d_ttd = now + ::arg().asNum("domain-metadata-cache-ttl");
- nce.d_key= key;
- nce.d_value = value;
- {
- WriteLock l(&s_metacachelock);
- replacing_insert(s_metacache, nce);
+
+ if (ttl > 0) {
+ METACacheEntry nce;
+ nce.d_domain=zname;
+ nce.d_ttd = now + ttl;
+ nce.d_key= key;
+ nce.d_value = value;
+ {
+ WriteLock l(&s_metacachelock);
+ replacing_insert(s_metacache, nce);
+ }
}
}
DNSSECKeeper::keyset_t DNSSECKeeper::getKeys(const DNSName& zone, bool useCache)
{
+ static int ttl = ::arg().asNum("dnssec-key-cache-ttl");
unsigned int now = time(0);
if(!((++s_ops) % 100000)) {
cleanup();
}
- if (useCache) {
+ if (useCache && ttl > 0) {
ReadLock l(&s_keycachelock);
keycache_t::const_iterator iter = s_keycache.find(zone);
}
sort(retkeyset.begin(), retkeyset.end(), keyCompareByKindAndID);
- KeyCacheEntry kce;
- kce.d_domain=zone;
- kce.d_keys = retkeyset;
- kce.d_ttd = now + ::arg().asNum("dns-key-cache-ttl");
- {
- WriteLock l(&s_keycachelock);
- replacing_insert(s_keycache, kce);
+ if (ttl > 0) {
+ KeyCacheEntry kce;
+ kce.d_domain=zone;
+ kce.d_keys = retkeyset;
+ kce.d_ttd = now + ttl;
+ {
+ WriteLock l(&s_keycachelock);
+ replacing_insert(s_keycache, kce);
+ }
}
+
return retkeyset;
}
::arg().set("soa-expire-default","Default SOA expire")="604800";
::arg().set("soa-minimum-ttl","Default SOA minimum ttl")="3600";
::arg().set("chroot","Switch to this chroot jail")="";
- ::arg().set("dns-key-cache-ttl","Seconds to store domain DNS keys in cache")="30";
- ::arg().set("domain-metadata-cache-ttl","Seconds to store domain metadata in cache")="60";
+ ::arg().set("dnssec-key-cache-ttl","Seconds to cache DNSSEC keys from the database")="30";
+ ::arg().set("domain-metadata-cache-ttl","Seconds to cache domain metadata from the database")="60";
// Keep this line below all ::arg().set() statements
if (! ::arg().laxFile(configname.c_str()))