优化compare逻辑

This commit is contained in:
M09Ic 2022-11-11 11:55:49 +08:00
parent f8f2fe839c
commit 6fe2b1cede

View File

@ -274,18 +274,22 @@ func (p *Pool) BaseCompare(bl *pkg.Baseline) {
p.OutputCh <- bl
return
}
var status int
base, ok := p.baselines[bl.Status]
if !ok {
var status = -1
base, ok := p.baselines[bl.Status] // 挑选对应状态码的baseline进行compare
if !ok && p.base.Status == bl.Status {
// 当other的状态码与base相同时, 会使用base
ok = true
base = p.base
}
// 挑选对应状态码的baseline进行compare
if ok {
if status = base.Compare(bl); status == 1 {
p.PutToInvalid(bl, "compare failed")
return
}
}
if status == 0 {
bl.Collect()
for _, f := range bl.Frameworks {
if f.Tag == "waf/cdn" {
@ -294,11 +298,12 @@ func (p *Pool) BaseCompare(bl *pkg.Baseline) {
}
}
if status == 0 && base.FuzzyCompare(bl) {
if ok && base.FuzzyCompare(bl) {
p.PutToInvalid(bl, "fuzzy compare failed")
p.PutToFuzzy(bl)
return
}
}
p.OutputCh <- bl
}