aboutsummaryrefslogtreecommitdiff
path: root/plugin/cache/cache.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/cache/cache.go')
-rw-r--r--plugin/cache/cache.go41
1 files changed, 28 insertions, 13 deletions
diff --git a/plugin/cache/cache.go b/plugin/cache/cache.go
index 654841b23..9ff43dac2 100644
--- a/plugin/cache/cache.go
+++ b/plugin/cache/cache.go
@@ -22,13 +22,15 @@ type Cache struct {
Next plugin.Handler
Zones []string
- ncache *cache.Cache
- ncap int
- nttl time.Duration
+ ncache *cache.Cache
+ ncap int
+ nttl time.Duration
+ minnttl time.Duration
- pcache *cache.Cache
- pcap int
- pttl time.Duration
+ pcache *cache.Cache
+ pcap int
+ pttl time.Duration
+ minpttl time.Duration
// Prefetch.
prefetch int
@@ -47,9 +49,11 @@ func New() *Cache {
pcap: defaultCap,
pcache: cache.New(defaultCap),
pttl: maxTTL,
+ minpttl: minTTL,
ncap: defaultCap,
ncache: cache.New(defaultCap),
nttl: maxNTTL,
+ minnttl: minNTTL,
prefetch: 0,
duration: 1 * time.Minute,
percentage: 10,
@@ -100,6 +104,17 @@ func hash(qname string, qtype uint16, do bool) uint64 {
return h.Sum64()
}
+func computeTTL(msgTTL, minTTL, maxTTL time.Duration) time.Duration {
+ ttl := msgTTL
+ if ttl < minTTL {
+ ttl = minTTL
+ }
+ if ttl > maxTTL {
+ ttl = maxTTL
+ }
+ return ttl
+}
+
// ResponseWriter is a response writer that caches the reply message.
type ResponseWriter struct {
dns.ResponseWriter
@@ -154,14 +169,12 @@ func (w *ResponseWriter) WriteMsg(res *dns.Msg) error {
// key returns empty string for anything we don't want to cache.
hasKey, key := key(res, mt, do)
- duration := w.pttl
- if mt == response.NameError || mt == response.NoData {
- duration = w.nttl
- }
-
msgTTL := dnsutil.MinimalTTL(res, mt)
- if msgTTL < duration {
- duration = msgTTL
+ var duration time.Duration
+ if mt == response.NameError || mt == response.NoData {
+ duration = computeTTL(msgTTL, w.minnttl, w.nttl)
+ } else {
+ duration = computeTTL(msgTTL, w.minpttl, w.pttl)
}
if hasKey && duration > 0 {
@@ -226,7 +239,9 @@ func (w *ResponseWriter) Write(buf []byte) (int, error) {
const (
maxTTL = dnsutil.MaximumDefaulTTL
+ minTTL = dnsutil.MinimalDefaultTTL
maxNTTL = dnsutil.MaximumDefaulTTL / 2
+ minNTTL = dnsutil.MinimalDefaultTTL
defaultCap = 10000 // default capacity of the cache.
on> Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/integration/snapshots/string-escapes.js (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2021-10-16Update js_ast.zigGravatar Jarred Sumner 1-0/+17
2021-10-16Support GitHub repositories, transform package.json to better fit Bun's usageGravatar Jarred Sumner 3-404/+1180
2021-10-16more stringsGravatar Jarred Sumner 2-3/+28
2021-10-16Ensure `self` is always definedGravatar Jarred Sumner 1-0/+1
2021-10-16Fix edgecase in Transfer-Encoding chunkedGravatar Jarred Sumner 1-3/+2
2021-10-15CleanupGravatar Jarred Sumner 5-7/+9
2021-10-15Bump the versionbun-v0.0.35Gravatar Jarred Sumner 2-2/+2
2021-10-15LatestGravatar Jarred Sumner 5-14/+1360
2021-10-15:camera:Gravatar Jarred Sumner 2-2/+4
2021-10-15Fix static libarchive buildGravatar Jarred Sumner 1-2/+5
2021-10-15Bump s2n-tlsGravatar Jarred Sumner 1-0/+0
2021-10-15Linux build fixesGravatar Jarred SUmner 11-1377/+154
2021-10-15Update MakefileGravatar Jarred Sumner 1-1/+2
2021-10-15Cleanup makefile to get libiconv setup for linuxGravatar Jarred Sumner 4-2416/+9
2021-10-15Update MakefileGravatar Jarred Sumner 1-5/+5
2021-10-15Update MakefileGravatar Jarred Sumner 1-1/+1
2021-10-15update makefilejarred/genGravatar Jarred Sumner 3-16/+23
2021-10-15PolishGravatar Jarred Sumner 13-208/+2907
2021-10-14:sparkle:Gravatar Jarred Sumner 11-18245/+296
2021-10-14Update README.mdGravatar Jarred Sumner 1-2/+2
2021-10-14Update README.mdGravatar Jarred Sumner 1-2/+9
2021-10-14Update README.mdGravatar Jarred Sumner 1-9/+8
2021-10-14Update README.mdGravatar Jarred Sumner 1-0/+3
2021-10-14Update README.mdGravatar Jarred Sumner 1-1/+2
2021-10-14Update README.mdGravatar Jarred Sumner 1-107/+107
2021-10-14Support local templatesGravatar Jarred Sumner 8-145/+558
2021-10-14Update router.zigGravatar Jarred Sumner 1-0/+212
2021-10-14Support passing an absolute pathGravatar Jarred Sumner 4-171/+313
2021-10-14Update bun-create.mdGravatar Jarred Sumner 1-2/+6
2021-10-14Update bun-create.mdGravatar Jarred Sumner 1-1/+1
2021-10-14Add doc explaining bun-createGravatar Jarred Sumner 3-3/+60
2021-10-14`bun create react app` is almost doneGravatar Jarred Sumner 27-57/+1561
2021-10-13v0.0.0v0.0.0Gravatar Jarred Sumner 1-1/+2
2021-10-13[fetch] Slight perf improvementGravatar Jarred Sumner 1-0/+4
2021-10-13`--turbo` mode for fetch cli, which disables sending TLS shutdownGravatar Jarred Sumner 2-2/+5
2021-10-13[fetch] Support Transfer-Encoding: chunkedGravatar Jarred Sumner 5-39/+135
2021-10-13Update build.zigGravatar Jarred Sumner 1-2/+3
2021-10-13Clean up examples a littleGravatar Jarred Sumner 42-102/+7
2021-10-13Add TLS 1.3 support, improve fetch() HTTPS performanceGravatar Jarred Sumner 16-287/+751