fix: parse logic rule error

This commit is contained in:
Skyxim
2022-04-09 22:25:39 +08:00
parent b2981f921c
commit 07906c0aa5
4 changed files with 30 additions and 13 deletions

View File

@ -1,6 +1,8 @@
package logic
import (
"fmt"
C "github.com/Dreamacro/clash/constant"
"github.com/Dreamacro/clash/rule/common"
)
@ -45,12 +47,16 @@ func (or *OR) ShouldResolveIP() bool {
func NewOR(payload string, adapter string) (*OR, error) {
or := &OR{Base: &common.Base{}, payload: payload, adapter: adapter}
rules, err := parseRuleByPayload(payload)
rules, err := parseRuleByPayload(payload, true)
if err != nil {
return nil, err
}
or.rules = rules
if len(or.rules) == 0 {
return nil, fmt.Errorf("Or rule is error, may be format error or not contain least one rule")
}
for _, rule := range rules {
if rule.ShouldResolveIP() {
or.needIP = true