diff --git a/common/xray/json/badoption/range.go b/common/xray/json/badoption/range.go index 645fda82..cef20315 100644 --- a/common/xray/json/badoption/range.go +++ b/common/xray/json/badoption/range.go @@ -33,17 +33,22 @@ func (c *Range) UnmarshalJSON(content []byte) error { if err == nil { parts := strings.Split(stringValue, "-") if len(parts) != 2 { - return E.New("invalid length of range parts") + from, err := strconv.ParseInt(parts[0], 10, 32) + if err != nil { + return err + } + rangeValue.From, rangeValue.To = int32(from), int32(from) + } else { + from, err := strconv.ParseInt(parts[0], 10, 32) + if err != nil { + return err + } + to, err := strconv.ParseInt(parts[1], 10, 32) + if err != nil { + return err + } + rangeValue.From, rangeValue.To = int32(from), int32(to) } - from, err := strconv.ParseInt(parts[0], 10, 32) - if err != nil { - return err - } - to, err := strconv.ParseInt(parts[1], 10, 32) - if err != nil { - return err - } - rangeValue.From, rangeValue.To = int32(from), int32(to) } else { err := json.Unmarshal(content, &rangeValue) if err != nil {