diff options
Diffstat (limited to 'plugin/hosts')
-rw-r--r-- | plugin/hosts/README.md | 2 | ||||
-rw-r--r-- | plugin/hosts/setup.go | 6 | ||||
-rw-r--r-- | plugin/hosts/setup_test.go | 9 |
3 files changed, 17 insertions, 0 deletions
diff --git a/plugin/hosts/README.md b/plugin/hosts/README.md index b435e0a88..3be25661a 100644 --- a/plugin/hosts/README.md +++ b/plugin/hosts/README.md @@ -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 ~~~ diff --git a/plugin/hosts/setup.go b/plugin/hosts/setup.go index 57413feed..ca4635f0a 100644 --- a/plugin/hosts/setup.go +++ b/plugin/hosts/setup.go @@ -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] diff --git a/plugin/hosts/setup_test.go b/plugin/hosts/setup_test.go index d23170f1f..78b1cff86 100644 --- a/plugin/hosts/setup_test.go +++ b/plugin/hosts/setup_test.go @@ -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 { |