aboutsummaryrefslogtreecommitdiff
path: root/plugin/backend_lookup.go
diff options
context:
space:
mode:
authorGravatar stuart nelson <stuartnelson3@gmail.com> 2018-11-16 14:42:49 +0100
committerGravatar Chris O'Haver <cohaver@infoblox.com> 2018-11-16 08:42:49 -0500
commit8dbe1fbee227d6830d61a169eb947f4c243c76d6 (patch)
tree31b34683a80a659e76e2076865d76a77ef48dbea /plugin/backend_lookup.go
parent3f6dfba1f0e9cd6c858f88891550d09904b7814d (diff)
downloadcoredns-8dbe1fbee227d6830d61a169eb947f4c243c76d6.tar.gz
coredns-8dbe1fbee227d6830d61a169eb947f4c243c76d6.tar.zst
coredns-8dbe1fbee227d6830d61a169eb947f4c243c76d6.zip
Set SOA record TTL as min of TTL/MINIMUM (#2295)
* Set SOA record TTL as min of TTL/MINIMUM According to https://tools.ietf.org/html/rfc2308#section-3: The TTL of this record is set from the minimum of the MINIMUM field of the SOA record and the TTL of the SOA itself, and indicates how long a resolver may cache the negative answer. Set the TTL accordingly so as to not always negative cache SOA records for 300 seconds. * Inline min func * Update SOA record tests * Fix types
Diffstat (limited to 'plugin/backend_lookup.go')
-rw-r--r--plugin/backend_lookup.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/plugin/backend_lookup.go b/plugin/backend_lookup.go
index 77e08174f..090f36215 100644
--- a/plugin/backend_lookup.go
+++ b/plugin/backend_lookup.go
@@ -391,7 +391,13 @@ func NS(b ServiceBackend, zone string, state request.Request, opt Options) (reco
// SOA returns a SOA record from the backend.
func SOA(b ServiceBackend, zone string, state request.Request, opt Options) ([]dns.RR, error) {
- header := dns.RR_Header{Name: zone, Rrtype: dns.TypeSOA, Ttl: 300, Class: dns.ClassINET}
+ minTTL := b.MinTTL(state)
+ ttl := uint32(300)
+ if minTTL < ttl {
+ ttl = minTTL
+ }
+
+ header := dns.RR_Header{Name: zone, Rrtype: dns.TypeSOA, Ttl: ttl, Class: dns.ClassINET}
Mbox := hostmaster + "."
Ns := "ns.dns."
@@ -407,7 +413,7 @@ func SOA(b ServiceBackend, zone string, state request.Request, opt Options) ([]d
Refresh: 7200,
Retry: 1800,
Expire: 86400,
- Minttl: b.MinTTL(state),
+ Minttl: minTTL,
}
return []dns.RR{soa}, nil
}