diff options
Diffstat (limited to 'plugin/errors')
-rw-r--r-- | plugin/errors/README.md | 2 | ||||
-rw-r--r-- | plugin/errors/setup.go | 6 | ||||
-rw-r--r-- | plugin/errors/setup_test.go | 23 |
3 files changed, 16 insertions, 15 deletions
diff --git a/plugin/errors/README.md b/plugin/errors/README.md index db16eaea8..f15b271f6 100644 --- a/plugin/errors/README.md +++ b/plugin/errors/README.md @@ -8,6 +8,8 @@ Any errors encountered during the query processing will be printed to standard output. +This plugin can only be used once per Server Block. + ## Syntax ~~~ diff --git a/plugin/errors/setup.go b/plugin/errors/setup.go index 19bdcdb80..082f222b0 100644 --- a/plugin/errors/setup.go +++ b/plugin/errors/setup.go @@ -37,7 +37,13 @@ func setup(c *caddy.Controller) error { func errorsParse(c *caddy.Controller) (errorHandler, error) { handler := errorHandler{} + i := 0 for c.Next() { + if i > 0 { + return handler, plugin.ErrOnce + } + i++ + args := c.RemainingArgs() switch len(args) { case 0: diff --git a/plugin/errors/setup_test.go b/plugin/errors/setup_test.go index bae85da32..da7c251d5 100644 --- a/plugin/errors/setup_test.go +++ b/plugin/errors/setup_test.go @@ -12,21 +12,14 @@ func TestErrorsParse(t *testing.T) { shouldErr bool expectedErrorHandler errorHandler }{ - {`errors`, false, errorHandler{ - LogFile: "stdout", - }}, - {`errors stdout`, false, errorHandler{ - LogFile: "stdout", - }}, - {`errors errors.txt`, true, errorHandler{ - LogFile: "", - }}, - {`errors visible`, true, errorHandler{ - LogFile: "", - }}, - {`errors { log visible }`, true, errorHandler{ - LogFile: "stdout", - }}, + {`errors`, false, errorHandler{LogFile: "stdout"}}, + {`errors stdout`, false, errorHandler{LogFile: "stdout"}}, + {`errors errors.txt`, true, errorHandler{LogFile: ""}}, + {`errors visible`, true, errorHandler{LogFile: ""}}, + {`errors { log visible }`, true, errorHandler{LogFile: "stdout"}}, + {`errors + errors `, true, errorHandler{LogFile: "stdout"}}, + {`errors a b`, true, errorHandler{LogFile: ""}}, } for i, test := range tests { c := caddy.NewTestController("dns", test.inputErrorsRules) |