aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-10-02 19:41:00 +0100
committerGravatar GitHub <noreply@github.com> 2016-10-02 19:41:00 +0100
commitcc486fb900c20fce761993c102763449d14a1188 (patch)
treecbe00457ea279cc5395f48fe40df007906df8d6d
parent560f11d1484c7fe0a729832ba3f6c3ef4f6f58e0 (diff)
downloadcoredns-cc486fb900c20fce761993c102763449d14a1188.tar.gz
coredns-cc486fb900c20fce761993c102763449d14a1188.tar.zst
coredns-cc486fb900c20fce761993c102763449d14a1188.zip
middleware/file: transfer from does not make sense (#314)
Make it return an error when you use `transfer from` when you're not a secondary. Add tests as well. Fixes #310
-rw-r--r--middleware/file/setup.go10
-rw-r--r--middleware/file/setup_test.go7
-rw-r--r--middleware/secondary/setup.go2
3 files changed, 15 insertions, 4 deletions
diff --git a/middleware/file/setup.go b/middleware/file/setup.go
index 114b370f5..dd1f17d9a 100644
--- a/middleware/file/setup.go
+++ b/middleware/file/setup.go
@@ -83,7 +83,7 @@ func fileParse(c *caddy.Controller) (Zones, error) {
noReload := false
for c.NextBlock() {
- t, _, e := TransferParse(c)
+ t, _, e := TransferParse(c, false)
if e != nil {
return Zones{}, e
}
@@ -105,8 +105,9 @@ func fileParse(c *caddy.Controller) (Zones, error) {
}
// TransferParse parses transfer statements: 'transfer to [address...]'.
-// Exported so secondary can use this as well.
-func TransferParse(c *caddy.Controller) (tos, froms []string, err error) {
+// Exported so secondary can use this as well. For the `file` middleware transfer from does
+// not make sense; make this an error.
+func TransferParse(c *caddy.Controller, secondary bool) (tos, froms []string, err error) {
what := c.Val()
if !c.NextArg() {
return nil, nil, c.ArgErr()
@@ -126,6 +127,9 @@ func TransferParse(c *caddy.Controller) (tos, froms []string, err error) {
}
}
if value == "from" {
+ if !secondary {
+ return nil, nil, fmt.Errorf("can't use `transfer from` when not being a seconary")
+ }
froms = c.RemainingArgs()
for i := range froms {
if froms[i] != "*" {
diff --git a/middleware/file/setup_test.go b/middleware/file/setup_test.go
index d2cb1cc60..9f37fd688 100644
--- a/middleware/file/setup_test.go
+++ b/middleware/file/setup_test.go
@@ -27,6 +27,13 @@ func TestFileParse(t *testing.T) {
expectedZones Zones
}{
{
+ `file ` + zoneFileName1 + ` miek.nl {
+ transfer from 127.0.0.1
+ }`,
+ true,
+ Zones{},
+ },
+ {
`file`,
true,
Zones{},
diff --git a/middleware/secondary/setup.go b/middleware/secondary/setup.go
index eb112faf9..d239053ff 100644
--- a/middleware/secondary/setup.go
+++ b/middleware/secondary/setup.go
@@ -63,7 +63,7 @@ func secondaryParse(c *caddy.Controller) (file.Zones, error) {
}
for c.NextBlock() {
- t, f, e := file.TransferParse(c)
+ t, f, e := file.TransferParse(c, true)
if e != nil {
return file.Zones{}, e
}
ss='sub right'>
aboutsummaryrefslogtreecommitdiff
path: root/src/blob.zig (unfollow)
AgeCommit message (Expand)AuthorFilesLines