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

View File

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