mirror of
https://github.com/coredns/coredns.git
synced 2025-11-09 21:42:17 -05:00
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
This commit is contained in:
@@ -59,7 +59,14 @@ func dnssecParse(c *caddy.Controller) ([]string, []*DNSKEY, int, error) {
|
||||
keys := []*DNSKEY{}
|
||||
|
||||
capacity := defaultCap
|
||||
|
||||
i := 0
|
||||
for c.Next() {
|
||||
if i > 0 {
|
||||
return nil, nil, 0, plugin.ErrOnce
|
||||
}
|
||||
i++
|
||||
|
||||
// dnssec [zones...]
|
||||
zones = make([]string, len(c.ServerBlockKeys))
|
||||
copy(zones, c.ServerBlockKeys)
|
||||
@@ -69,7 +76,8 @@ func dnssecParse(c *caddy.Controller) ([]string, []*DNSKEY, int, error) {
|
||||
}
|
||||
|
||||
for c.NextBlock() {
|
||||
switch c.Val() {
|
||||
|
||||
switch x := c.Val(); x {
|
||||
case "key":
|
||||
k, e := keyParse(c)
|
||||
if e != nil {
|
||||
@@ -86,6 +94,8 @@ func dnssecParse(c *caddy.Controller) ([]string, []*DNSKEY, int, error) {
|
||||
return nil, nil, 0, err
|
||||
}
|
||||
capacity = cacheCap
|
||||
default:
|
||||
return nil, nil, 0, c.Errf("unknown property '%s'", x)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user