aboutsummaryrefslogtreecommitdiff
path: root/plugin/cache/setup.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2018-02-28 18:16:05 -0800
committerGravatar GitHub <noreply@github.com> 2018-02-28 18:16:05 -0800
commitf697b33283afe695554888eb0cf9f5451c481470 (patch)
tree1b46a531ec1e0b623a32a183b56dfdf3ebc8ae1f /plugin/cache/setup.go
parent5faa9e7bc178775e023f5bff1394e61bddf94eeb (diff)
downloadcoredns-f697b33283afe695554888eb0cf9f5451c481470.tar.gz
coredns-f697b33283afe695554888eb0cf9f5451c481470.tar.zst
coredns-f697b33283afe695554888eb0cf9f5451c481470.zip
return an error for multiple use of some plugins (#1559)
* plugins: Return error for multiple use of some Return plugin.ErrOnce when a plugin that doesn't support it, is called mutliple times. This now adds it for: cache, dnssec, errors, forward, hosts, nsid. And changes it slightly in kubernetes, pprof, reload, root. * more tests
Diffstat (limited to 'plugin/cache/setup.go')
-rw-r--r--plugin/cache/setup.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/plugin/cache/setup.go b/plugin/cache/setup.go
index 41fa023b8..4ea51d510 100644
--- a/plugin/cache/setup.go
+++ b/plugin/cache/setup.go
@@ -61,7 +61,13 @@ func setup(c *caddy.Controller) error {
func cacheParse(c *caddy.Controller) (*Cache, error) {
ca := New()
+ j := 0
for c.Next() {
+ if j > 0 {
+ return nil, plugin.ErrOnce
+ }
+ j++
+
// cache [ttl] [zones..]
origins := make([]string, len(c.ServerBlockKeys))
copy(origins, c.ServerBlockKeys)
@@ -180,9 +186,7 @@ func cacheParse(c *caddy.Controller) (*Cache, error) {
ca.pcache = cache.New(ca.pcap)
ca.ncache = cache.New(ca.ncap)
-
- return ca, nil
}
- return nil, nil
+ return ca, nil
}