aboutsummaryrefslogtreecommitdiff
path: root/plugin/errors
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/errors')
-rw-r--r--plugin/errors/README.md2
-rw-r--r--plugin/errors/setup.go6
-rw-r--r--plugin/errors/setup_test.go23
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)