修复凭证测试器计数器、消除panic、补齐i18n

- credential_tester: testCredentialWithRetry返回ErrorType,修复网络错误计数器永久不递增的bug
- scanner: os.Exit(1)改为return,defer Cleanup可正常执行
- probe_parser: 5处panic改为error返回,调用链透传到init()
- common库: parsers/initialize/network/session共17处硬编码中文改用i18n
- services插件: 18个文件115处硬编码中文改用i18n
- locale: 补齐service/parser/network相关~25个中英文键
This commit is contained in:
ZacharyZcR
2026-05-18 04:55:20 +08:00
parent c266912dcb
commit 77827bef66
33 changed files with 221 additions and 100 deletions
+16 -8
View File
@@ -19,13 +19,16 @@ var (
vscanOnce sync.Once
)
// Init 初始化VScan对象
func (vs *VScan) Init() {
vs.parseProbesFromContent(ProbeString)
// Init 初始化VScan对象,返回错误替代panic
func (vs *VScan) Init() error {
if err := vs.parseProbesFromContent(ProbeString); err != nil {
return err
}
vs.parseProbesToMapKName()
vs.SetusedProbes()
vs.compileFallbacks() // 编译 fallback 数组
vs.preDecodeProbeData() // 预解码探针数据
vs.compileFallbacks()
vs.preDecodeProbeData()
return nil
}
// preDecodeProbeData 预解码所有探针的 Data 字段,避免运行时重复解码
@@ -100,10 +103,14 @@ func (vs *VScan) compileFallbacks() {
}
// InitializeGlobalVScan 初始化全局VScan实例(线程安全,只执行一次)
func InitializeGlobalVScan() {
func InitializeGlobalVScan() error {
var initErr error
vscanOnce.Do(func() {
globalVScan = VScan{}
globalVScan.Init()
if err := globalVScan.Init(); err != nil {
initErr = err
return
}
// 获取并检查 NULL 探测器
if nullProbe, ok := globalVScan.ProbesMapKName["NULL"]; ok {
@@ -115,6 +122,7 @@ func InitializeGlobalVScan() {
globalCommon = &genericProbe
}
})
return initErr
}
// GetGlobalVScan 获取全局VScan实例
@@ -136,5 +144,5 @@ func GetCommonProbe() *Probe {
}
func init() {
InitializeGlobalVScan()
_ = InitializeGlobalVScan()
}