mirror of
https://github.com/coredns/coredns.git
synced 2025-10-28 08:44:17 -04:00
Fix parsing of transfer lines
This commit is contained in:
@@ -99,27 +99,24 @@ func parseTransfer(c *Controller) (tos, froms []string, err error) {
|
|||||||
value := c.Val()
|
value := c.Val()
|
||||||
switch what {
|
switch what {
|
||||||
case "transfer":
|
case "transfer":
|
||||||
if !c.NextArg() {
|
|
||||||
return nil, nil, c.ArgErr()
|
|
||||||
}
|
|
||||||
if value == "to" {
|
if value == "to" {
|
||||||
tos := c.RemainingArgs()
|
tos = c.RemainingArgs()
|
||||||
for i, _ := range tos {
|
for i, _ := range tos {
|
||||||
|
if tos[i] != "*" {
|
||||||
if x := net.ParseIP(tos[i]); x == nil {
|
if x := net.ParseIP(tos[i]); x == nil {
|
||||||
return nil, nil, fmt.Errorf("must specify an IP addres: `%s'", tos[i])
|
return nil, nil, fmt.Errorf("must specify an IP addres: `%s'", tos[i])
|
||||||
}
|
}
|
||||||
if tos[i] != "*" {
|
|
||||||
tos[i] = middleware.Addr(tos[i]).Normalize()
|
tos[i] = middleware.Addr(tos[i]).Normalize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if value == "from" {
|
if value == "from" {
|
||||||
froms := c.RemainingArgs()
|
froms = c.RemainingArgs()
|
||||||
for i, _ := range froms {
|
for i, _ := range froms {
|
||||||
|
if froms[i] != "*" {
|
||||||
if x := net.ParseIP(froms[i]); x == nil {
|
if x := net.ParseIP(froms[i]); x == nil {
|
||||||
return nil, nil, fmt.Errorf("must specify an IP addres: `%s'", froms[i])
|
return nil, nil, fmt.Errorf("must specify an IP addres: `%s'", froms[i])
|
||||||
}
|
}
|
||||||
if froms[i] != "*" {
|
|
||||||
froms[i] = middleware.Addr(froms[i]).Normalize()
|
froms[i] = middleware.Addr(froms[i]).Normalize()
|
||||||
} else {
|
} else {
|
||||||
return nil, nil, fmt.Errorf("can't use '*' in transfer from")
|
return nil, nil, fmt.Errorf("can't use '*' in transfer from")
|
||||||
|
|||||||
@@ -41,7 +41,8 @@ Transfer:
|
|||||||
for _, rr := range env.RR {
|
for _, rr := range env.RR {
|
||||||
if err := z1.Insert(rr); err != nil {
|
if err := z1.Insert(rr); err != nil {
|
||||||
log.Printf("[ERROR] Failed to parse transfer `%s': %v", z.origin, err)
|
log.Printf("[ERROR] Failed to parse transfer `%s': %v", z.origin, err)
|
||||||
return err
|
Err = err
|
||||||
|
continue Transfer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user