Improve: unmarshal inbound (#2864)

This commit is contained in:
yaling888 2023-08-07 13:18:25 +08:00 committed by GitHub
parent 54b86eec71
commit e1025391d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 13 deletions

View File

@ -50,27 +50,25 @@ func (i *Inbound) UnmarshalYAML(unmarshal func(any) error) error {
} }
*i = Inbound(inner) *i = Inbound(inner)
return nil } else {
inner, err := parseInbound(tp)
if err != nil {
return err
}
*i = Inbound(*inner)
} }
inner, err := parseInbound(tp)
if err != nil {
return err
}
*i = Inbound(*inner)
if !supportInboundTypes[i.Type] { if !supportInboundTypes[i.Type] {
return fmt.Errorf("not support inbound type: %s", i.Type) return fmt.Errorf("not support inbound type: %s", i.Type)
} }
_, portStr, err := net.SplitHostPort(i.BindAddress) _, portStr, err := net.SplitHostPort(i.BindAddress)
if err != nil { if err != nil {
return fmt.Errorf("bind address parse error. addr:%s, err:%v", i.BindAddress, err) return fmt.Errorf("bind address parse error. addr: %s, err: %w", i.BindAddress, err)
} }
port, err := strconv.Atoi(portStr) port, err := strconv.ParseUint(portStr, 10, 16)
if err != nil { if err != nil || port == 0 {
return fmt.Errorf("port not a number. addr:%s", i.BindAddress) return fmt.Errorf("invalid bind port. addr: %s", i.BindAddress)
}
if port == 0 {
return fmt.Errorf("invalid bind port. addr:%s", i.BindAddress)
} }
return nil return nil
} }