mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00

- 删除Manager.go: 完全未使用的配置管理器模式(239行) - 删除ScanOptions.go: 完全未使用的扫描选项管理器(408行) - 简化PortMapping.go: 保留核心功能,删除未使用方法(减少151行) - 简化ServiceDict.go: 保留核心功能,删除未使用方法(减少152行) - 清理Types.go: 删除未使用的NewConfig函数(24行) - 清理constants.go: 删除未使用的版本和验证常量(54行) 总计减少1032行死代码,包大小减少85%,保持功能完整性
82 lines
1.9 KiB
Go
82 lines
1.9 KiB
Go
package config
|
|
|
|
import (
|
|
"sync"
|
|
)
|
|
|
|
// ServiceDictionary 服务字典管理器
|
|
type ServiceDictionary struct {
|
|
mu sync.RWMutex
|
|
userDict map[string][]string
|
|
passwords []string
|
|
initialized bool
|
|
}
|
|
|
|
// NewServiceDictionary 创建服务字典管理器
|
|
func NewServiceDictionary() *ServiceDictionary {
|
|
return &ServiceDictionary{
|
|
userDict: getDefaultUserDict(),
|
|
passwords: getDefaultPasswords(),
|
|
initialized: true,
|
|
}
|
|
}
|
|
|
|
// getDefaultUserDict 获取默认用户字典
|
|
func getDefaultUserDict() map[string][]string {
|
|
// 返回常量的深拷贝
|
|
result := make(map[string][]string)
|
|
for service, users := range DefaultUserDict {
|
|
usersCopy := make([]string, len(users))
|
|
copy(usersCopy, users)
|
|
result[service] = usersCopy
|
|
}
|
|
return result
|
|
}
|
|
|
|
// getDefaultPasswords 获取默认密码字典
|
|
func getDefaultPasswords() []string {
|
|
// 返回常量的副本
|
|
result := make([]string, len(DefaultPasswords))
|
|
copy(result, DefaultPasswords)
|
|
return result
|
|
}
|
|
|
|
// GetAllUserDicts 获取所有服务的用户字典
|
|
func (sd *ServiceDictionary) GetAllUserDicts() map[string][]string {
|
|
sd.mu.RLock()
|
|
defer sd.mu.RUnlock()
|
|
|
|
result := make(map[string][]string)
|
|
for service, users := range sd.userDict {
|
|
usersCopy := make([]string, len(users))
|
|
copy(usersCopy, users)
|
|
result[service] = usersCopy
|
|
}
|
|
return result
|
|
}
|
|
|
|
// GetPasswords 获取默认密码字典
|
|
func (sd *ServiceDictionary) GetPasswords() []string {
|
|
sd.mu.RLock()
|
|
defer sd.mu.RUnlock()
|
|
|
|
// 返回副本,避免外部修改
|
|
result := make([]string, len(sd.passwords))
|
|
copy(result, sd.passwords)
|
|
return result
|
|
}
|
|
|
|
|
|
// 全局服务字典实例
|
|
var (
|
|
globalServiceDict *ServiceDictionary
|
|
serviceDictOnce sync.Once
|
|
)
|
|
|
|
// GetGlobalServiceDict 获取全局服务字典实例
|
|
func GetGlobalServiceDict() *ServiceDictionary {
|
|
serviceDictOnce.Do(func() {
|
|
globalServiceDict = NewServiceDictionary()
|
|
})
|
|
return globalServiceDict
|
|
} |