From a067f817aecf06e7ddb16309a4c67ab1de286a09 Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Wed, 8 Jul 2026 22:10:54 +0200 Subject: [PATCH] refactor: modernize Go with strings.SplitSeq and maps.Copy Replace strings.Split loops with strings.SplitSeq iterators in the CSV parsers (reality_scan and the scale-test helpers) and swap a manual map copy for maps.Copy in the MTProto traffic collector. No behavior change; these are the fixes the modernize analyzer reports. --- internal/mtproto/manager.go | 5 ++--- internal/sub/sub_scale_test.go | 2 +- internal/web/job/check_client_ip_scale_test.go | 2 +- internal/web/service/reality_scan.go | 2 +- internal/web/service/scale_helpers_test.go | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/internal/mtproto/manager.go b/internal/mtproto/manager.go index 87824049f..2ea5002ce 100644 --- a/internal/mtproto/manager.go +++ b/internal/mtproto/manager.go @@ -7,6 +7,7 @@ import ( "encoding/hex" "encoding/json" "fmt" + "maps" "net" "net/http" "net/url" @@ -413,9 +414,7 @@ func (m *Manager) CollectTraffic() ([]Traffic, []string) { continue } lastCopy := make(map[string]clientCounters, len(cur.last)) - for k, v := range cur.last { - lastCopy[k] = v - } + maps.Copy(lastCopy, cur.last) snaps = append(snaps, snap{id: id, apiPort: cur.apiPort, apiToken: cur.apiToken, tag: cur.tag, last: lastCopy}) } m.mu.Unlock() diff --git a/internal/sub/sub_scale_test.go b/internal/sub/sub_scale_test.go index c9858779e..55c65637a 100644 --- a/internal/sub/sub_scale_test.go +++ b/internal/sub/sub_scale_test.go @@ -54,7 +54,7 @@ func scaleSubSizes(t *testing.T, def ...int) []int { return def } var out []int - for _, part := range strings.Split(raw, ",") { + for part := range strings.SplitSeq(raw, ",") { part = strings.TrimSpace(part) if part == "" { continue diff --git a/internal/web/job/check_client_ip_scale_test.go b/internal/web/job/check_client_ip_scale_test.go index 3760e121e..d57f1cd58 100644 --- a/internal/web/job/check_client_ip_scale_test.go +++ b/internal/web/job/check_client_ip_scale_test.go @@ -51,7 +51,7 @@ func scaleJobSizes(t *testing.T, def ...int) []int { return def } var out []int - for _, part := range strings.Split(raw, ",") { + for part := range strings.SplitSeq(raw, ",") { part = strings.TrimSpace(part) if part == "" { continue diff --git a/internal/web/service/reality_scan.go b/internal/web/service/reality_scan.go index f3965970c..2b4b99854 100644 --- a/internal/web/service/reality_scan.go +++ b/internal/web/service/reality_scan.go @@ -286,7 +286,7 @@ func (s *ServerService) ScanRealityTarget(target string) (*RealityScanResult, er func (s *ServerService) ScanRealityTargets(targetsCSV string) ([]*RealityScanResult, error) { var tokens []string - for _, raw := range strings.Split(targetsCSV, ",") { + for raw := range strings.SplitSeq(targetsCSV, ",") { if t := strings.TrimSpace(raw); t != "" { tokens = append(tokens, t) } diff --git a/internal/web/service/scale_helpers_test.go b/internal/web/service/scale_helpers_test.go index 894c3a990..87a2888a3 100644 --- a/internal/web/service/scale_helpers_test.go +++ b/internal/web/service/scale_helpers_test.go @@ -60,7 +60,7 @@ func scaleSizes(t *testing.T, def ...int) []int { return def } var out []int - for _, part := range strings.Split(raw, ",") { + for part := range strings.SplitSeq(raw, ",") { part = strings.TrimSpace(part) if part == "" { continue