aboutsummaryrefslogtreecommitdiff
path: root/plugin/cache/setup.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/cache/setup.go')
-rw-r--r--plugin/cache/setup.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/plugin/cache/setup.go b/plugin/cache/setup.go
index afbf361c5..e5258dc06 100644
--- a/plugin/cache/setup.go
+++ b/plugin/cache/setup.go
@@ -166,11 +166,11 @@ func cacheParse(c *caddy.Controller) (*Cache, error) {
case "serve_stale":
args := c.RemainingArgs()
- if len(args) > 1 {
+ if len(args) > 2 {
return nil, c.ArgErr()
}
ca.staleUpTo = 1 * time.Hour
- if len(args) == 1 {
+ if len(args) > 0 {
d, err := time.ParseDuration(args[0])
if err != nil {
return nil, err
@@ -180,6 +180,14 @@ func cacheParse(c *caddy.Controller) (*Cache, error) {
}
ca.staleUpTo = d
}
+ ca.verifyStale = false
+ if len(args) > 1 {
+ mode := strings.ToLower(args[1])
+ if mode != "immediate" && mode != "verify" {
+ return nil, fmt.Errorf("invalid value for serve_stale refresh mode: %s", mode)
+ }
+ ca.verifyStale = mode == "verify"
+ }
default:
return nil, c.ArgErr()
}