--fuzzy-status添加特殊情况 "all", 所有类型的状态码都会启用对应的模糊匹配

This commit is contained in:
M09Ic 2023-02-07 18:42:20 +08:00
parent c263c11926
commit 6287a8e468
2 changed files with 19 additions and 15 deletions

View File

@ -219,7 +219,11 @@ func (opt *Option) PrepareRunner() (*Runner, error) {
BlackStatus = parseStatus(BlackStatus, opt.BlackStatus) BlackStatus = parseStatus(BlackStatus, opt.BlackStatus)
WhiteStatus = parseStatus(WhiteStatus, opt.WhiteStatus) WhiteStatus = parseStatus(WhiteStatus, opt.WhiteStatus)
if opt.FuzzyStatus == "all" {
enableAllFuzzy = true
} else {
FuzzyStatus = parseStatus(FuzzyStatus, opt.FuzzyStatus) FuzzyStatus = parseStatus(FuzzyStatus, opt.FuzzyStatus)
}
// prepare word // prepare word
dicts := make([][]string, len(opt.Dictionaries)) dicts := make([][]string, len(opt.Dictionaries))

View File

@ -18,7 +18,6 @@ import (
"golang.org/x/time/rate" "golang.org/x/time/rate"
"net/url" "net/url"
"path" "path"
"strconv"
"strings" "strings"
"sync" "sync"
"sync/atomic" "sync/atomic"
@ -30,6 +29,7 @@ var (
MaxRedirect = 3 MaxRedirect = 3
MaxCrawl = 3 MaxCrawl = 3
MaxRecursion = 0 MaxRecursion = 0
enableAllFuzzy = false
nilBaseline = &pkg.Baseline{} nilBaseline = &pkg.Baseline{}
) )
@ -369,13 +369,13 @@ func (pool *Pool) Handler() {
"random": pool.random, "random": pool.random,
"current": bl, "current": bl,
} }
for _, status := range FuzzyStatus { //for _, status := range FuzzyStatus {
if bl, ok := pool.baselines[status]; ok { // if bl, ok := pool.baselines[status]; ok {
params["bl"+strconv.Itoa(status)] = bl // params["bl"+strconv.Itoa(status)] = bl
} else { // } else {
params["bl"+strconv.Itoa(status)] = nilBaseline // params["bl"+strconv.Itoa(status)] = nilBaseline
} // }
} //}
} }
var status bool var status bool
@ -700,7 +700,7 @@ func (pool *Pool) addAddition(u *Unit) {
} }
func (pool *Pool) addFuzzyBaseline(bl *pkg.Baseline) { func (pool *Pool) addFuzzyBaseline(bl *pkg.Baseline) {
if _, ok := pool.baselines[bl.Status]; !ok && iutils.IntsContains(FuzzyStatus, bl.Status) { if _, ok := pool.baselines[bl.Status]; !ok && (enableAllFuzzy || iutils.IntsContains(FuzzyStatus, bl.Status)) {
bl.Collect() bl.Collect()
pool.waiter.Add(1) pool.waiter.Add(1)
pool.doCrawl(bl) pool.doCrawl(bl)