diff options
author | 2018-02-28 18:16:05 -0800 | |
---|---|---|
committer | 2018-02-28 18:16:05 -0800 | |
commit | f697b33283afe695554888eb0cf9f5451c481470 (patch) | |
tree | 1b46a531ec1e0b623a32a183b56dfdf3ebc8ae1f /plugin/cache/setup.go | |
parent | 5faa9e7bc178775e023f5bff1394e61bddf94eeb (diff) | |
download | coredns-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.go | 10 |
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 } |