diff options
author | 2016-04-15 17:08:31 +0100 | |
---|---|---|
committer | 2016-04-15 17:08:31 +0100 | |
commit | 9b82cca9e23f53ab5999c4e614170045bf31a969 (patch) | |
tree | c27552001926b70f482c5049f396a9ad10456c72 | |
parent | c9d8a57ed66f8debe72856ec9d12c25f97248f0e (diff) | |
download | coredns-9b82cca9e23f53ab5999c4e614170045bf31a969.tar.gz coredns-9b82cca9e23f53ab5999c4e614170045bf31a969.tar.zst coredns-9b82cca9e23f53ab5999c4e614170045bf31a969.zip |
Fix parsing of transfer lines
-rw-r--r-- | core/setup/file.go | 19 | ||||
-rw-r--r-- | middleware/file/secondary.go | 3 |
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 } } } |