update
This commit is contained in:
@ -1,8 +1,12 @@
|
||||
package logic
|
||||
|
||||
import C "github.com/Dreamacro/clash/constant"
|
||||
import (
|
||||
C "github.com/Dreamacro/clash/constant"
|
||||
"github.com/Dreamacro/clash/rule/common"
|
||||
)
|
||||
|
||||
type AND struct {
|
||||
common.Base
|
||||
rules []C.Rule
|
||||
payload string
|
||||
adapter string
|
||||
@ -56,7 +60,3 @@ func (A *AND) Payload() string {
|
||||
func (A *AND) ShouldResolveIP() bool {
|
||||
return A.needIP
|
||||
}
|
||||
|
||||
func (A *AND) RuleExtra() *C.RuleExtra {
|
||||
return nil
|
||||
}
|
||||
|
@ -74,31 +74,31 @@ func parseRule(tp, payload string, params []string) (C.Rule, error) {
|
||||
|
||||
switch tp {
|
||||
case "DOMAIN":
|
||||
parsed = RC.NewDomain(payload, "", nil)
|
||||
parsed = RC.NewDomain(payload, "")
|
||||
case "DOMAIN-SUFFIX":
|
||||
parsed = RC.NewDomainSuffix(payload, "", nil)
|
||||
parsed = RC.NewDomainSuffix(payload, "")
|
||||
case "DOMAIN-KEYWORD":
|
||||
parsed = RC.NewDomainKeyword(payload, "", nil)
|
||||
parsed = RC.NewDomainKeyword(payload, "")
|
||||
case "GEOSITE":
|
||||
parsed, parseErr = RC.NewGEOSITE(payload, "", nil)
|
||||
parsed, parseErr = RC.NewGEOSITE(payload, "")
|
||||
case "GEOIP":
|
||||
noResolve := RC.HasNoResolve(params)
|
||||
parsed, parseErr = RC.NewGEOIP(payload, "", noResolve, nil)
|
||||
parsed, parseErr = RC.NewGEOIP(payload, "", noResolve)
|
||||
case "IP-CIDR", "IP-CIDR6":
|
||||
noResolve := RC.HasNoResolve(params)
|
||||
parsed, parseErr = RC.NewIPCIDR(payload, "", nil, RC.WithIPCIDRNoResolve(noResolve))
|
||||
case "SRC-IP-CIDR":
|
||||
parsed, parseErr = RC.NewIPCIDR(payload, "", nil, RC.WithIPCIDRSourceIP(true), RC.WithIPCIDRNoResolve(true))
|
||||
case "SRC-PORT":
|
||||
parsed, parseErr = RC.NewPort(payload, "", true, nil)
|
||||
parsed, parseErr = RC.NewPort(payload, "", true)
|
||||
case "DST-PORT":
|
||||
parsed, parseErr = RC.NewPort(payload, "", false, nil)
|
||||
parsed, parseErr = RC.NewPort(payload, "", false)
|
||||
case "PROCESS-NAME":
|
||||
parsed, parseErr = RC.NewProcess(payload, "", true, nil)
|
||||
parsed, parseErr = RC.NewProcess(payload, "", true)
|
||||
case "PROCESS-PATH":
|
||||
parsed, parseErr = RC.NewProcess(payload, "", false, nil)
|
||||
parsed, parseErr = RC.NewProcess(payload, "", false)
|
||||
case "RULE-SET":
|
||||
parsed, parseErr = provider.NewRuleSet(payload, "", nil)
|
||||
parsed, parseErr = provider.NewRuleSet(payload, "")
|
||||
case "NOT":
|
||||
parsed, parseErr = NewNOT(payload, "")
|
||||
case "AND":
|
||||
|
@ -3,9 +3,11 @@ package logic
|
||||
import (
|
||||
"fmt"
|
||||
C "github.com/Dreamacro/clash/constant"
|
||||
"github.com/Dreamacro/clash/rule/common"
|
||||
)
|
||||
|
||||
type NOT struct {
|
||||
common.Base
|
||||
rule C.Rule
|
||||
payload string
|
||||
adapter string
|
||||
@ -49,7 +51,3 @@ func (not *NOT) Payload() string {
|
||||
func (not *NOT) ShouldResolveIP() bool {
|
||||
return not.rule.ShouldResolveIP()
|
||||
}
|
||||
|
||||
func (not *NOT) RuleExtra() *C.RuleExtra {
|
||||
return nil
|
||||
}
|
||||
|
@ -1,8 +1,12 @@
|
||||
package logic
|
||||
|
||||
import C "github.com/Dreamacro/clash/constant"
|
||||
import (
|
||||
C "github.com/Dreamacro/clash/constant"
|
||||
"github.com/Dreamacro/clash/rule/common"
|
||||
)
|
||||
|
||||
type OR struct {
|
||||
common.Base
|
||||
rules []C.Rule
|
||||
payload string
|
||||
adapter string
|
||||
@ -39,10 +43,6 @@ func (or *OR) ShouldResolveIP() bool {
|
||||
return or.needIP
|
||||
}
|
||||
|
||||
func (or *OR) RuleExtra() *C.RuleExtra {
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewOR(payload string, adapter string) (*OR, error) {
|
||||
or := &OR{payload: payload, adapter: adapter}
|
||||
rules, err := parseRuleByPayload(payload)
|
||||
|
Reference in New Issue
Block a user