aboutsummaryrefslogtreecommitdiff
path: root/plugin/cache/cache.go
diff options
context:
space:
mode:
authorGravatar Kun Chang <curtis@mail.ustc.edu.cn> 2019-04-08 18:15:05 +0800
committerGravatar Miek Gieben <miek@miek.nl> 2019-04-08 11:15:05 +0100
commitbe8b29cd4d428eb85fb8cd97b439b3af4d451beb (patch)
treec2bc5fe0ac3de782c03e94de5fe71ec945de68b8 /plugin/cache/cache.go
parent58c703f5ef212e3c9efbe31fa4d9332eb268ff0d (diff)
downloadcoredns-be8b29cd4d428eb85fb8cd97b439b3af4d451beb.tar.gz
coredns-be8b29cd4d428eb85fb8cd97b439b3af4d451beb.tar.zst
coredns-be8b29cd4d428eb85fb8cd97b439b3af4d451beb.zip
[plugin/cache] cache failures (#2720)
* cache failures * use ServerError
Diffstat (limited to 'plugin/cache/cache.go')
-rw-r--r--plugin/cache/cache.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/plugin/cache/cache.go b/plugin/cache/cache.go
index bc82bb604..69de55f17 100644
--- a/plugin/cache/cache.go
+++ b/plugin/cache/cache.go
@@ -163,6 +163,9 @@ func (w *ResponseWriter) WriteMsg(res *dns.Msg) error {
var duration time.Duration
if mt == response.NameError || mt == response.NoData {
duration = computeTTL(msgTTL, w.minnttl, w.nttl)
+ } else if mt == response.ServerError {
+ // use default ttl which is 5s
+ duration = minTTL
} else {
duration = computeTTL(msgTTL, w.minpttl, w.pttl)
}
@@ -206,7 +209,7 @@ func (w *ResponseWriter) set(m *dns.Msg, key uint64, mt response.Type, duration
i := newItem(m, w.now(), duration)
w.pcache.Add(key, i)
- case response.NameError, response.NoData:
+ case response.NameError, response.NoData, response.ServerError:
i := newItem(m, w.now(), duration)
w.ncache.Add(key, i)