0
0
mirror of https://github.com/XTLS/REALITY.git synced 2025-08-22 14:38:35 +00:00

refactor: add fast exit from DetectPostHandshakeRecordsLens if fingerprint already exists in GlobalPostHandshakeRecordsLens.

This commit is contained in:
jesus 2025-06-16 21:41:30 +04:00
parent 6833ba5445
commit f95e393ceb

View File

@ -17,6 +17,8 @@ var GlobalPostHandshakeRecordsLock sync.Mutex
var GlobalPostHandshakeRecordsLens map[string]map[string][]int
const networkType = "tcp"
func InitAllRecords(config *Config) {
DetectPostHandshakeRecordsLens(config, "hellochrome_131") // init most used first
for f, _ := range ModernFingerprints {
@ -25,6 +27,10 @@ func InitAllRecords(config *Config) {
}
func DetectPostHandshakeRecordsLens(config *Config, fingerprint string) map[string][]int {
if GlobalPostHandshakeRecordsLens != nil && GlobalPostHandshakeRecordsLens[fingerprint] != nil {
return GlobalPostHandshakeRecordsLens[fingerprint]
}
GlobalPostHandshakeRecordsLock.Lock()
if GlobalPostHandshakeRecordsLens == nil {
GlobalPostHandshakeRecordsLens = make(map[string]map[string][]int)
@ -34,13 +40,13 @@ func DetectPostHandshakeRecordsLens(config *Config, fingerprint string) map[stri
}
var pending []string
for sni := range config.ServerNames {
if (GlobalPostHandshakeRecordsLens[fingerprint][sni] == nil) {
if GlobalPostHandshakeRecordsLens[fingerprint][sni] == nil {
pending = append(pending, sni)
}
}
GlobalPostHandshakeRecordsLock.Unlock()
for _, sni := range pending {
target, err := net.Dial("tcp", config.Dest)
target, err := net.Dial(networkType, config.Dest)
if err != nil {
continue
}