diff options
author | 2018-02-28 18:16:05 -0800 | |
---|---|---|
committer | 2018-02-28 18:16:05 -0800 | |
commit | f697b33283afe695554888eb0cf9f5451c481470 (patch) | |
tree | 1b46a531ec1e0b623a32a183b56dfdf3ebc8ae1f /plugin/kubernetes/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/kubernetes/setup.go')
-rw-r--r-- | plugin/kubernetes/setup.go | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/plugin/kubernetes/setup.go b/plugin/kubernetes/setup.go index 7d41fb64d..9eddadbb7 100644 --- a/plugin/kubernetes/setup.go +++ b/plugin/kubernetes/setup.go @@ -71,12 +71,18 @@ func (k *Kubernetes) RegisterKubeCache(c *caddy.Controller) { } func kubernetesParse(c *caddy.Controller) (*Kubernetes, error) { - var k8s *Kubernetes - var err error - for i := 1; c.Next(); i++ { - if i > 1 { - return nil, fmt.Errorf("only one kubernetes section allowed per server block") + var ( + k8s *Kubernetes + err error + ) + + i := 0 + for c.Next() { + if i > 0 { + return nil, plugin.ErrOnce } + i++ + k8s, err = ParseStanza(c) if err != nil { return k8s, err |