[Skip CI]
This commit is contained in:
@ -82,6 +82,9 @@ func parseRule(tp, payload, target string, params []string) (C.Rule, error) {
|
||||
parsed, parseErr = RC.NewPort(payload, target, false, ruleExtra)
|
||||
case "PROCESS-NAME":
|
||||
parsed, parseErr = RC.NewProcess(payload, target, ruleExtra)
|
||||
case "GEOIP":
|
||||
noResolve := RC.HasNoResolve(params)
|
||||
parsed, parseErr = RC.NewGEOIP(payload, target, noResolve, ruleExtra)
|
||||
default:
|
||||
parseErr = fmt.Errorf("unsupported rule type %s", tp)
|
||||
}
|
||||
|
@ -81,9 +81,9 @@ func (rp *ruleSetProvider) Match(metadata *C.Metadata) bool {
|
||||
|
||||
switch rp.behavior {
|
||||
case P.Domain:
|
||||
return rp.DomainRules.Search(metadata.Host) != nil
|
||||
return rp.DomainRules != nil && rp.DomainRules.Search(metadata.Host) != nil
|
||||
case P.IPCIDR:
|
||||
return rp.IPCIDRRules.IsContain(metadata.DstIP)
|
||||
return rp.IPCIDRRules != nil && rp.IPCIDRRules.IsContain(metadata.DstIP)
|
||||
case P.Classical:
|
||||
for _, rule := range rp.ClassicalRules {
|
||||
if rule.Match(metadata) {
|
||||
@ -124,12 +124,12 @@ func NewRuleSetProvider(name string, behavior P.RuleType, interval time.Duration
|
||||
|
||||
onUpdate := func(elm interface{}) error {
|
||||
rulesRaw := elm.([]string)
|
||||
rp.count = len(rulesRaw)
|
||||
rules, err := constructRules(rp.behavior, rulesRaw)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rp.count = len(rulesRaw)
|
||||
rp.setRules(rules)
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user