Feature: add source ipcidr condition to rule final

This commit is contained in:
yaling888
2021-09-01 18:29:48 +08:00
parent fb836fe441
commit b904ca0bcc
4 changed files with 25 additions and 13 deletions

View File

@@ -5,7 +5,8 @@ import (
)
type Match struct {
adapter string
adapter string
ruleExtra *C.RuleExtra
}
func (f *Match) RuleType() C.RuleType {
@@ -29,11 +30,15 @@ func (f *Match) ShouldResolveIP() bool {
}
func (f *Match) RuleExtra() *C.RuleExtra {
return nil
return f.ruleExtra
}
func NewMatch(adapter string) *Match {
func NewMatch(adapter string, ruleExtra *C.RuleExtra) *Match {
if ruleExtra.SourceIPs == nil {
ruleExtra = nil
}
return &Match{
adapter: adapter,
adapter: adapter,
ruleExtra: ruleExtra,
}
}

View File

@@ -41,7 +41,7 @@ func ParseRule(tp, payload, target string, params []string) (C.Rule, error) {
case "PROCESS-NAME":
parsed, parseErr = NewProcess(payload, target, ruleExtra)
case "MATCH":
parsed = NewMatch(target)
parsed = NewMatch(target, ruleExtra)
default:
parseErr = fmt.Errorf("unsupported rule type %s", tp)
}