|
@@ -195,8 +195,11 @@ func (list *PortList) Build() *net.PortList {
|
|
|
// UnmarshalJSON implements encoding/json.Unmarshaler.UnmarshalJSON
|
|
// UnmarshalJSON implements encoding/json.Unmarshaler.UnmarshalJSON
|
|
|
func (list *PortList) UnmarshalJSON(data []byte) error {
|
|
func (list *PortList) UnmarshalJSON(data []byte) error {
|
|
|
var listStr string
|
|
var listStr string
|
|
|
|
|
+ var number uint32
|
|
|
if err := json.Unmarshal(data, &listStr); err != nil {
|
|
if err := json.Unmarshal(data, &listStr); err != nil {
|
|
|
- return newError("invalid port list: ", string(data)).Base(err)
|
|
|
|
|
|
|
+ if err2 := json.Unmarshal(data, &number); err2 != nil {
|
|
|
|
|
+ return newError("invalid port: ", string(data)).Base(err2)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
rangelist := strings.Split(listStr, ",")
|
|
rangelist := strings.Split(listStr, ",")
|
|
|
for _, rangeStr := range rangelist {
|
|
for _, rangeStr := range rangelist {
|
|
@@ -217,6 +220,9 @@ func (list *PortList) UnmarshalJSON(data []byte) error {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ if number != 0 {
|
|
|
|
|
+ list.Range = append(list.Range, PortRange{From: uint32(number), To: uint32(number)})
|
|
|
|
|
+ }
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|