diff options
Diffstat (limited to 'plugin/cache/setup.go')
-rw-r--r-- | plugin/cache/setup.go | 12 |
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() } |