mirror of
https://github.com/coredns/coredns.git
synced 2025-10-27 08:14:18 -04: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:
@@ -11,6 +11,8 @@ file that exists on disk. It checks the file for changes and updates the zones a
|
||||
plugin only supports A, AAAA, and PTR records. The hosts plugin can be used with readily
|
||||
available hosts files that block access to advertising servers.
|
||||
|
||||
This plugin can only be used once per Server Block.
|
||||
|
||||
## Syntax
|
||||
|
||||
~~~
|
||||
|
||||
@@ -69,7 +69,13 @@ func hostsParse(c *caddy.Controller) (Hosts, error) {
|
||||
config := dnsserver.GetConfig(c)
|
||||
|
||||
inline := []string{}
|
||||
i := 0
|
||||
for c.Next() {
|
||||
if i > 0 {
|
||||
return h, plugin.ErrOnce
|
||||
}
|
||||
i++
|
||||
|
||||
args := c.RemainingArgs()
|
||||
if len(args) >= 1 {
|
||||
h.path = args[0]
|
||||
|
||||
@@ -57,6 +57,15 @@ func TestHostsParse(t *testing.T) {
|
||||
}`,
|
||||
false, "/etc/hosts", []string{"miek.nl.", "10.in-addr.arpa."}, fall.Root,
|
||||
},
|
||||
{
|
||||
`hosts /etc/hosts {
|
||||
fallthrough
|
||||
}
|
||||
hosts /etc/hosts {
|
||||
fallthrough
|
||||
}`,
|
||||
true, "/etc/hosts", nil, fall.Root,
|
||||
},
|
||||
}
|
||||
|
||||
for i, test := range tests {
|
||||
|
||||
Reference in New Issue
Block a user