aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-04-15 17:08:31 +0100
committerGravatar Miek Gieben <miek@miek.nl> 2016-04-15 17:08:31 +0100
commit9b82cca9e23f53ab5999c4e614170045bf31a969 (patch)
treec27552001926b70f482c5049f396a9ad10456c72
parentc9d8a57ed66f8debe72856ec9d12c25f97248f0e (diff)
downloadcoredns-9b82cca9e23f53ab5999c4e614170045bf31a969.tar.gz
coredns-9b82cca9e23f53ab5999c4e614170045bf31a969.tar.zst
coredns-9b82cca9e23f53ab5999c4e614170045bf31a969.zip
Fix parsing of transfer lines
-rw-r--r--core/setup/file.go19
-rw-r--r--middleware/file/secondary.go3
2 files changed, 10 insertions, 12 deletions
diff --git a/core/setup/file.go b/core/setup/file.go
index 1fe04c1ec..25ee5149d 100644
--- a/core/setup/file.go
+++ b/core/setup/file.go
@@ -99,27 +99,24 @@ func parseTransfer(c *Controller) (tos, froms []string, err error) {
value := c.Val()
switch what {
case "transfer":
- if !c.NextArg() {
- return nil, nil, c.ArgErr()
- }
if value == "to" {
- tos := c.RemainingArgs()
+ tos = c.RemainingArgs()
for i, _ := range tos {
- if x := net.ParseIP(tos[i]); x == nil {
- return nil, nil, fmt.Errorf("must specify an IP addres: `%s'", tos[i])
- }
if tos[i] != "*" {
+ if x := net.ParseIP(tos[i]); x == nil {
+ return nil, nil, fmt.Errorf("must specify an IP addres: `%s'", tos[i])
+ }
tos[i] = middleware.Addr(tos[i]).Normalize()
}
}
}
if value == "from" {
- froms := c.RemainingArgs()
+ froms = c.RemainingArgs()
for i, _ := range froms {
- if x := net.ParseIP(froms[i]); x == nil {
- return nil, nil, fmt.Errorf("must specify an IP addres: `%s'", froms[i])
- }
if froms[i] != "*" {
+ if x := net.ParseIP(froms[i]); x == nil {
+ return nil, nil, fmt.Errorf("must specify an IP addres: `%s'", froms[i])
+ }
froms[i] = middleware.Addr(froms[i]).Normalize()
} else {
return nil, nil, fmt.Errorf("can't use '*' in transfer from")
diff --git a/middleware/file/secondary.go b/middleware/file/secondary.go
index eb95392ad..8e79549e0 100644
--- a/middleware/file/secondary.go
+++ b/middleware/file/secondary.go
@@ -41,7 +41,8 @@ Transfer:
for _, rr := range env.RR {
if err := z1.Insert(rr); err != nil {
log.Printf("[ERROR] Failed to parse transfer `%s': %v", z.origin, err)
- return err
+ Err = err
+ continue Transfer
}
}
}