Fix parsing of transfer lines

This commit is contained in:
Miek Gieben
2016-04-15 17:08:31 +01:00
parent c9d8a57ed6
commit 9b82cca9e2
2 changed files with 10 additions and 12 deletions

View File

@@ -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")

View File

@@ -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
}
}
}