优化compare逻辑

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

View File

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