fix: classical rule-set 更新未清理

This commit is contained in:
Skyxim 2022-06-04 19:12:50 +08:00
parent 8e959bd245
commit c52e689d0d

View file

@ -30,20 +30,24 @@ func (c *classicalStrategy) ShouldResolveIP() bool {
} }
func (c *classicalStrategy) OnUpdate(rules []string) { func (c *classicalStrategy) OnUpdate(rules []string) {
var classicalRules []C.Rule
shouldResolveIP := false
for _, rawRule := range rules { for _, rawRule := range rules {
ruleType, rule, params := ruleParse(rawRule) ruleType, rule, params := ruleParse(rawRule)
r, err := parseRule(ruleType, rule, "", params) r, err := parseRule(ruleType, rule, "", params)
if err != nil { if err != nil {
log.Warnln("parse rule error:[%s]", err.Error()) log.Warnln("parse rule error:[%s]", err.Error())
} else { } else {
if !c.shouldResolveIP { if !shouldResolveIP {
c.shouldResolveIP = r.ShouldResolveIP() shouldResolveIP = r.ShouldResolveIP()
} }
c.rules = append(c.rules, r) classicalRules = append(classicalRules, r)
c.count++
} }
} }
c.rules = classicalRules
c.count = len(classicalRules)
} }
func NewClassicalStrategy() *classicalStrategy { func NewClassicalStrategy() *classicalStrategy {