소스 검색

Merge pull request #331 from 9seconds/go1.26

Chore updates for golang 1.26
tags/v2.1.10^2^2
Sergei Arkhipov 2 달 전
부모
커밋
ed5da2864a
No account linked to committer's email address

+ 2
- 2
events/event_stream.go 파일 보기

@@ -2,7 +2,7 @@ package events
2 2
 
3 3
 import (
4 4
 	"context"
5
-	"math/rand"
5
+	"math/rand/v2"
6 6
 	"runtime"
7 7
 
8 8
 	"github.com/9seconds/mtg/v2/mtglib"
@@ -64,7 +64,7 @@ func NewEventStream(observerFactories []ObserverFactory) EventStream {
64 64
 		chans:     make([]chan mtglib.Event, runtime.NumCPU()),
65 65
 	}
66 66
 
67
-	for i := 0; i < runtime.NumCPU(); i++ {
67
+	for i := range runtime.NumCPU() {
68 68
 		rv.chans[i] = make(chan mtglib.Event, 1)
69 69
 
70 70
 		if len(observerFactories) == 1 {

+ 27
- 54
events/multi_observer.go 파일 보기

@@ -12,14 +12,11 @@ type multiObserver struct {
12 12
 
13 13
 func (m multiObserver) EventStart(evt mtglib.EventStart) {
14 14
 	wg := &sync.WaitGroup{}
15
-	wg.Add(len(m.observers))
16 15
 
17 16
 	for _, v := range m.observers {
18
-		go func(obs Observer) {
19
-			defer wg.Done()
20
-
21
-			obs.EventStart(evt)
22
-		}(v)
17
+		wg.Go(func() {
18
+			v.EventStart(evt)
19
+		})
23 20
 	}
24 21
 
25 22
 	wg.Wait()
@@ -27,14 +24,11 @@ func (m multiObserver) EventStart(evt mtglib.EventStart) {
27 24
 
28 25
 func (m multiObserver) EventConnectedToDC(evt mtglib.EventConnectedToDC) {
29 26
 	wg := &sync.WaitGroup{}
30
-	wg.Add(len(m.observers))
31 27
 
32 28
 	for _, v := range m.observers {
33
-		go func(obs Observer) {
34
-			defer wg.Done()
35
-
36
-			obs.EventConnectedToDC(evt)
37
-		}(v)
29
+		wg.Go(func() {
30
+			v.EventConnectedToDC(evt)
31
+		})
38 32
 	}
39 33
 
40 34
 	wg.Wait()
@@ -42,14 +36,11 @@ func (m multiObserver) EventConnectedToDC(evt mtglib.EventConnectedToDC) {
42 36
 
43 37
 func (m multiObserver) EventDomainFronting(evt mtglib.EventDomainFronting) {
44 38
 	wg := &sync.WaitGroup{}
45
-	wg.Add(len(m.observers))
46 39
 
47 40
 	for _, v := range m.observers {
48
-		go func(obs Observer) {
49
-			defer wg.Done()
50
-
51
-			obs.EventDomainFronting(evt)
52
-		}(v)
41
+		wg.Go(func() {
42
+			v.EventDomainFronting(evt)
43
+		})
53 44
 	}
54 45
 
55 46
 	wg.Wait()
@@ -57,14 +48,11 @@ func (m multiObserver) EventDomainFronting(evt mtglib.EventDomainFronting) {
57 48
 
58 49
 func (m multiObserver) EventTraffic(evt mtglib.EventTraffic) {
59 50
 	wg := &sync.WaitGroup{}
60
-	wg.Add(len(m.observers))
61 51
 
62 52
 	for _, v := range m.observers {
63
-		go func(obs Observer) {
64
-			defer wg.Done()
65
-
66
-			obs.EventTraffic(evt)
67
-		}(v)
53
+		wg.Go(func() {
54
+			v.EventTraffic(evt)
55
+		})
68 56
 	}
69 57
 
70 58
 	wg.Wait()
@@ -72,14 +60,11 @@ func (m multiObserver) EventTraffic(evt mtglib.EventTraffic) {
72 60
 
73 61
 func (m multiObserver) EventFinish(evt mtglib.EventFinish) {
74 62
 	wg := &sync.WaitGroup{}
75
-	wg.Add(len(m.observers))
76 63
 
77 64
 	for _, v := range m.observers {
78
-		go func(obs Observer) {
79
-			defer wg.Done()
80
-
81
-			obs.EventFinish(evt)
82
-		}(v)
65
+		wg.Go(func() {
66
+			v.EventFinish(evt)
67
+		})
83 68
 	}
84 69
 
85 70
 	wg.Wait()
@@ -87,14 +72,11 @@ func (m multiObserver) EventFinish(evt mtglib.EventFinish) {
87 72
 
88 73
 func (m multiObserver) EventConcurrencyLimited(evt mtglib.EventConcurrencyLimited) {
89 74
 	wg := &sync.WaitGroup{}
90
-	wg.Add(len(m.observers))
91 75
 
92 76
 	for _, v := range m.observers {
93
-		go func(obs Observer) {
94
-			defer wg.Done()
95
-
96
-			obs.EventConcurrencyLimited(evt)
97
-		}(v)
77
+		wg.Go(func() {
78
+			v.EventConcurrencyLimited(evt)
79
+		})
98 80
 	}
99 81
 
100 82
 	wg.Wait()
@@ -102,14 +84,11 @@ func (m multiObserver) EventConcurrencyLimited(evt mtglib.EventConcurrencyLimite
102 84
 
103 85
 func (m multiObserver) EventIPBlocklisted(evt mtglib.EventIPBlocklisted) {
104 86
 	wg := &sync.WaitGroup{}
105
-	wg.Add(len(m.observers))
106 87
 
107 88
 	for _, v := range m.observers {
108
-		go func(obs Observer) {
109
-			defer wg.Done()
110
-
111
-			obs.EventIPBlocklisted(evt)
112
-		}(v)
89
+		wg.Go(func() {
90
+			v.EventIPBlocklisted(evt)
91
+		})
113 92
 	}
114 93
 
115 94
 	wg.Wait()
@@ -117,14 +96,11 @@ func (m multiObserver) EventIPBlocklisted(evt mtglib.EventIPBlocklisted) {
117 96
 
118 97
 func (m multiObserver) EventReplayAttack(evt mtglib.EventReplayAttack) {
119 98
 	wg := &sync.WaitGroup{}
120
-	wg.Add(len(m.observers))
121 99
 
122 100
 	for _, v := range m.observers {
123
-		go func(obs Observer) {
124
-			defer wg.Done()
125
-
126
-			obs.EventReplayAttack(evt)
127
-		}(v)
101
+		wg.Go(func() {
102
+			v.EventReplayAttack(evt)
103
+		})
128 104
 	}
129 105
 
130 106
 	wg.Wait()
@@ -132,14 +108,11 @@ func (m multiObserver) EventReplayAttack(evt mtglib.EventReplayAttack) {
132 108
 
133 109
 func (m multiObserver) EventIPListSize(evt mtglib.EventIPListSize) {
134 110
 	wg := &sync.WaitGroup{}
135
-	wg.Add(len(m.observers))
136 111
 
137 112
 	for _, v := range m.observers {
138
-		go func(obs Observer) {
139
-			defer wg.Done()
140
-
141
-			obs.EventIPListSize(evt)
142
-		}(v)
113
+		wg.Go(func() {
114
+			v.EventIPListSize(evt)
115
+		})
143 116
 	}
144 117
 
145 118
 	wg.Wait()

+ 4
- 10
internal/cli/access.go 파일 보기

@@ -61,11 +61,8 @@ func (a *Access) Run(cli *CLI, version string) error {
61 61
 	}
62 62
 
63 63
 	wg := &sync.WaitGroup{}
64
-	wg.Add(2)
65
-
66
-	go func() {
67
-		defer wg.Done()
68 64
 
65
+	wg.Go(func() {
69 66
 		ip := a.PublicIPv4
70 67
 		if ip == nil {
71 68
 			ip = a.getIP(ntw, "tcp4")
@@ -76,11 +73,8 @@ func (a *Access) Run(cli *CLI, version string) error {
76 73
 		}
77 74
 
78 75
 		resp.IPv4 = a.makeURLs(conf, ip)
79
-	}()
80
-
81
-	go func() {
82
-		defer wg.Done()
83
-
76
+	})
77
+	wg.Go(func() {
84 78
 		ip := a.PublicIPv6
85 79
 		if ip == nil {
86 80
 			ip = a.getIP(ntw, "tcp6")
@@ -91,7 +85,7 @@ func (a *Access) Run(cli *CLI, version string) error {
91 85
 		}
92 86
 
93 87
 		resp.IPv6 = a.makeURLs(conf, ip)
94
-	}()
88
+	})
95 89
 
96 90
 	wg.Wait()
97 91
 

+ 2
- 2
internal/config/type_bool_test.go 파일 보기

@@ -20,7 +20,7 @@ type TypeBoolTestSuite struct {
20 20
 }
21 21
 
22 22
 func (suite *TypeBoolTestSuite) TestUnmarshalFail() {
23
-	testData := []interface{}{
23
+	testData := []any{
24 24
 		"",
25 25
 		"np",
26 26
 		"нет",
@@ -29,7 +29,7 @@ func (suite *TypeBoolTestSuite) TestUnmarshalFail() {
29 29
 	}
30 30
 
31 31
 	for _, v := range testData {
32
-		data, err := json.Marshal(map[string]interface{}{
32
+		data, err := json.Marshal(map[string]any{
33 33
 			"value": v,
34 34
 		})
35 35
 		suite.NoError(err)

+ 4
- 7
ipblocklist/firehol.go 파일 보기

@@ -112,18 +112,15 @@ func (f *Firehol) update() {
112 112
 	defer cancel()
113 113
 
114 114
 	wg := &sync.WaitGroup{}
115
-	wg.Add(len(f.blocklists))
116 115
 
117 116
 	mutex := &sync.Mutex{}
118 117
 	ranger := cidranger.NewPCTrieRanger()
119 118
 
120 119
 	for _, v := range f.blocklists {
121
-		go func(file files.File) {
122
-			defer wg.Done()
120
+		wg.Go(func() {
121
+			logger := f.logger.BindStr("filename", v.String())
123 122
 
124
-			logger := f.logger.BindStr("filename", file.String())
125
-
126
-			fileContent, err := file.Open(ctx)
123
+			fileContent, err := v.Open(ctx)
127 124
 			if err != nil {
128 125
 				logger.WarningError("update has failed", err)
129 126
 
@@ -135,7 +132,7 @@ func (f *Firehol) update() {
135 132
 			if err := f.updateFromFile(mutex, ranger, bufio.NewScanner(fileContent)); err != nil {
136 133
 				logger.WarningError("update has failed", err)
137 134
 			}
138
-		}(v)
135
+		})
139 136
 	}
140 137
 
141 138
 	wg.Wait()

+ 1
- 1
logger/init.go 파일 보기

@@ -8,5 +8,5 @@ package logger
8 8
 // commonly used by many 3pp tools. While mtglib itself does not need it, it is
9 9
 // always a good idea to support it and have a transient end to end logging.
10 10
 type StdLikeLogger interface {
11
-	Printf(format string, args ...interface{})
11
+	Printf(format string, args ...any)
12 12
 }

+ 1
- 1
logger/noop.go 파일 보기

@@ -8,7 +8,7 @@ func (n noopLogger) Named(_ string) mtglib.Logger          { return n }
8 8
 func (n noopLogger) BindInt(_ string, _ int) mtglib.Logger { return n }
9 9
 func (n noopLogger) BindStr(_, _ string) mtglib.Logger     { return n }
10 10
 func (n noopLogger) BindJSON(_, _ string) mtglib.Logger    { return n }
11
-func (n noopLogger) Printf(_ string, _ ...interface{})     {}
11
+func (n noopLogger) Printf(_ string, _ ...any)             {}
12 12
 func (n noopLogger) Info(_ string)                         {}
13 13
 func (n noopLogger) Warning(_ string)                      {}
14 14
 func (n noopLogger) Debug(_ string)                        {}

+ 1
- 1
logger/zerolog.go 파일 보기

@@ -78,7 +78,7 @@ func (z *zeroLogContext) BindJSON(name, value string) mtglib.Logger {
78 78
 	}
79 79
 }
80 80
 
81
-func (z *zeroLogContext) Printf(format string, args ...interface{}) {
81
+func (z *zeroLogContext) Printf(format string, args ...any) {
82 82
 	z.Debug(fmt.Sprintf(format, args...))
83 83
 }
84 84
 

+ 7
- 7
mise.lock 파일 보기

@@ -12,7 +12,7 @@ version = "latest"
12 12
 backend = "go:golang.org/x/pkgsite/cmd/pkgsite"
13 13
 
14 14
 [[tools."go:golang.org/x/tools/gopls"]]
15
-version = "0.21.0"
15
+version = "0.21.1"
16 16
 backend = "go:golang.org/x/tools/gopls"
17 17
 
18 18
 [[tools."go:mvdan.cc/gofumpt"]]
@@ -20,13 +20,13 @@ version = "0.9.2"
20 20
 backend = "go:mvdan.cc/gofumpt"
21 21
 
22 22
 [[tools.golangci-lint]]
23
-version = "2.9.0"
23
+version = "2.10.1"
24 24
 backend = "aqua:golangci/golangci-lint"
25
-"platforms.linux-arm64" = { checksum = "sha256:94e80cdb51c73c20a313bd3afa1fb23137728813c19fd730248a1e8678fcc46d", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-linux-arm64.tar.gz"}
26
-"platforms.linux-x64" = { checksum = "sha256:493aaaca2eba6c8bcef847d92716bbd91bbac4b22cdbb0ab5b6a581b32946091", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-linux-amd64.tar.gz"}
27
-"platforms.macos-arm64" = { checksum = "sha256:a86eabba3507deddd21f2a01a1df2a0ee5bc5c8178d4165cdcaaad8597358760", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-darwin-arm64.tar.gz"}
28
-"platforms.macos-x64" = { checksum = "sha256:ba29a353be54a74c45946763983808dc8305eeeca73db1761b5ab112f87f8157", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-darwin-amd64.tar.gz"}
29
-"platforms.windows-x64" = { checksum = "sha256:130fca8fa959eb840267c5e231f030a948e0de1e768bf6a31785505d1061632c", url = "https://github.com/golangci/golangci-lint/releases/download/v2.9.0/golangci-lint-2.9.0-windows-amd64.zip"}
25
+"platforms.linux-arm64" = { checksum = "sha256:6652b42ae02915eb2f9cb2a2e0cac99514c8eded8388d88ae3e06e1a52c00de8", url = "https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-linux-arm64.tar.gz"}
26
+"platforms.linux-x64" = { checksum = "sha256:dfa775874cf0561b404a02a8f4481fc69b28091da95aa697259820d429b09c99", url = "https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-linux-amd64.tar.gz"}
27
+"platforms.macos-arm64" = { checksum = "sha256:03bfadf67e52b441b7ec21305e501c717df93c959836d66c7f97312654acb297", url = "https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-darwin-arm64.tar.gz"}
28
+"platforms.macos-x64" = { checksum = "sha256:66fb0da81b8033b477f97eea420d4b46b230ca172b8bb87c6610109f3772b6b6", url = "https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-darwin-amd64.tar.gz"}
29
+"platforms.windows-x64" = { checksum = "sha256:c60c87695e79db8e320f0e5be885059859de52bb5ee5f11be5577828570bc2a3", url = "https://github.com/golangci/golangci-lint/releases/download/v2.10.1/golangci-lint-2.10.1-windows-amd64.zip"}
30 30
 
31 31
 [[tools.goreleaser]]
32 32
 version = "2.13.3"

+ 1
- 1
mtglib/init.go 파일 보기

@@ -249,7 +249,7 @@ type Logger interface {
249 249
 	BindJSON(name, value string) Logger
250 250
 
251 251
 	// Printf is to support log.Logger behavior.
252
-	Printf(format string, args ...interface{})
252
+	Printf(format string, args ...any)
253 253
 
254 254
 	// Info puts a message about some normal situation.
255 255
 	Info(msg string)

+ 11
- 11
mtglib/init_internal_test.go 파일 보기

@@ -8,17 +8,17 @@ import (
8 8
 
9 9
 type NoopLogger struct{}
10 10
 
11
-func (n NoopLogger) Named(_ string) Logger             { return n }
12
-func (n NoopLogger) BindInt(_ string, _ int) Logger    { return n }
13
-func (n NoopLogger) BindStr(_, _ string) Logger        { return n }
14
-func (n NoopLogger) BindJSON(_, _ string) Logger       { return n }
15
-func (n NoopLogger) Printf(_ string, _ ...interface{}) {}
16
-func (n NoopLogger) Info(_ string)                     {}
17
-func (n NoopLogger) Warning(_ string)                  {}
18
-func (n NoopLogger) Debug(_ string)                    {}
19
-func (n NoopLogger) InfoError(_ string, _ error)       {}
20
-func (n NoopLogger) WarningError(_ string, _ error)    {}
21
-func (n NoopLogger) DebugError(_ string, _ error)      {}
11
+func (n NoopLogger) Named(_ string) Logger          { return n }
12
+func (n NoopLogger) BindInt(_ string, _ int) Logger { return n }
13
+func (n NoopLogger) BindStr(_, _ string) Logger     { return n }
14
+func (n NoopLogger) BindJSON(_, _ string) Logger    { return n }
15
+func (n NoopLogger) Printf(_ string, _ ...any)      {}
16
+func (n NoopLogger) Info(_ string)                  {}
17
+func (n NoopLogger) Warning(_ string)               {}
18
+func (n NoopLogger) Debug(_ string)                 {}
19
+func (n NoopLogger) InfoError(_ string, _ error)    {}
20
+func (n NoopLogger) WarningError(_ string, _ error) {}
21
+func (n NoopLogger) DebugError(_ string, _ error)   {}
22 22
 
23 23
 type EventStreamMock struct {
24 24
 	mock.Mock

+ 1
- 1
mtglib/internal/faketls/client_hello.go 파일 보기

@@ -76,7 +76,7 @@ func ParseClientHello(secret, handshake []byte) (ClientHello, error) {
76 76
 
77 77
 	computedRandom := mac.Sum(nil)
78 78
 
79
-	for i := 0; i < RandomLen; i++ {
79
+	for i := range RandomLen {
80 80
 		computedRandom[i] ^= hello.Random[i]
81 81
 	}
82 82
 

+ 2
- 2
mtglib/internal/faketls/conn.go 파일 보기

@@ -3,7 +3,7 @@ package faketls
3 3
 import (
4 4
 	"bytes"
5 5
 	"fmt"
6
-	"math/rand"
6
+	"math/rand/v2"
7 7
 
8 8
 	"github.com/9seconds/mtg/v2/essentials"
9 9
 	"github.com/9seconds/mtg/v2/mtglib/internal/faketls/record"
@@ -53,7 +53,7 @@ func (c *Conn) Write(p []byte) (int, error) {
53 53
 	lenP := len(p)
54 54
 
55 55
 	for len(p) > 0 {
56
-		chunkSize := rand.Intn(record.TLSMaxRecordSize)
56
+		chunkSize := rand.IntN(record.TLSMaxRecordSize)
57 57
 		if chunkSize > len(p) || chunkSize == 0 {
58 58
 			chunkSize = len(p)
59 59
 		}

+ 2
- 2
mtglib/internal/faketls/conn_test.go 파일 보기

@@ -2,9 +2,9 @@ package faketls_test
2 2
 
3 3
 import (
4 4
 	"bytes"
5
+	"crypto/rand"
5 6
 	"errors"
6 7
 	"io"
7
-	"math/rand"
8 8
 	"testing"
9 9
 
10 10
 	"github.com/9seconds/mtg/v2/internal/testlib"
@@ -123,7 +123,7 @@ func (suite *ConnTestSuite) TestWrite() {
123 123
 	suite.connMock.On("Write", mock.Anything).Return(0, nil)
124 124
 
125 125
 	dataToRec := make([]byte, record.TLSMaxRecordSize*2)
126
-	rand.Read(dataToRec) //nolint: staticcheck
126
+	rand.Read(dataToRec) //nolint: staticcheck, errcheck
127 127
 
128 128
 	n, err := suite.c.Write(dataToRec)
129 129
 	suite.NoError(err)

+ 1
- 1
mtglib/internal/faketls/pools.go 파일 보기

@@ -6,7 +6,7 @@ import (
6 6
 )
7 7
 
8 8
 var bytesBufferPool = sync.Pool{
9
-	New: func() interface{} {
9
+	New: func() any {
10 10
 		return &bytes.Buffer{}
11 11
 	},
12 12
 }

+ 1
- 1
mtglib/internal/faketls/record/pools.go 파일 보기

@@ -5,7 +5,7 @@ import (
5 5
 )
6 6
 
7 7
 var recordPool = sync.Pool{
8
-	New: func() interface{} {
8
+	New: func() any {
9 9
 		return &Record{}
10 10
 	},
11 11
 }

+ 2
- 2
mtglib/internal/faketls/welcome.go 파일 보기

@@ -6,7 +6,7 @@ import (
6 6
 	"crypto/sha256"
7 7
 	"encoding/binary"
8 8
 	"io"
9
-	mrand "math/rand"
9
+	mrand "math/rand/v2"
10 10
 
11 11
 	"github.com/9seconds/mtg/v2/mtglib/internal/faketls/record"
12 12
 	"golang.org/x/crypto/curve25519"
@@ -36,7 +36,7 @@ func SendWelcomePacket(writer io.Writer, secret []byte, clientHello ClientHello)
36 36
 	rec.Type = record.TypeApplicationData
37 37
 	rec.Version = record.Version12
38 38
 
39
-	if _, err := io.CopyN(&rec.Payload, rand.Reader, int64(1024+mrand.Intn(3092))); err != nil {
39
+	if _, err := io.CopyN(&rec.Payload, rand.Reader, int64(1024+mrand.IntN(3092))); err != nil {
40 40
 		panic(err)
41 41
 	}
42 42
 

+ 1
- 1
mtglib/internal/faketls/welcome_test.go 파일 보기

@@ -3,8 +3,8 @@ package faketls_test
3 3
 import (
4 4
 	"bytes"
5 5
 	"crypto/hmac"
6
+	"crypto/rand"
6 7
 	"crypto/sha256"
7
-	"math/rand"
8 8
 	"testing"
9 9
 	"time"
10 10
 

+ 1
- 1
mtglib/internal/obfuscated2/handshake_frame.go 파일 보기

@@ -63,7 +63,7 @@ func (h *handshakeFrame) connectionType() []byte {
63 63
 func (h *handshakeFrame) invert() handshakeFrame {
64 64
 	copyFrame := *h
65 65
 
66
-	for i := 0; i < handshakeFrameLenKey+handshakeFrameLenIV; i++ {
66
+	for i := range handshakeFrameLenKey + handshakeFrameLenIV {
67 67
 		copyFrame.data[handshakeFrameOffsetKey+i] = h.data[handshakeFrameOffsetConnectionType-1-i]
68 68
 	}
69 69
 

+ 1
- 1
mtglib/internal/obfuscated2/init_test.go 파일 보기

@@ -117,7 +117,7 @@ func NewServerHandshakeTestData(t *testing.T) ServerHandshakeTestData {
117 117
 
118 118
 	serverEncryptedReverted := make([]byte, len(serverEncrypted))
119 119
 
120
-	for i := 0; i < 32+16; i++ {
120
+	for i := range 32 + 16 {
121 121
 		serverEncryptedReverted[8+i] = serverEncrypted[8+32+16-1-i]
122 122
 	}
123 123
 

+ 2
- 2
mtglib/internal/obfuscated2/pools.go 파일 보기

@@ -9,12 +9,12 @@ import (
9 9
 
10 10
 var (
11 11
 	sha256HasherPool = sync.Pool{
12
-		New: func() interface{} {
12
+		New: func() any {
13 13
 			return sha256.New()
14 14
 		},
15 15
 	}
16 16
 	bytesBufferPool = sync.Pool{
17
-		New: func() interface{} {
17
+		New: func() any {
18 18
 			return &bytes.Buffer{}
19 19
 		},
20 20
 	}

+ 1
- 1
mtglib/internal/relay/init.go 파일 보기

@@ -5,5 +5,5 @@ const (
5 5
 )
6 6
 
7 7
 type Logger interface {
8
-	Printf(msg string, args ...interface{})
8
+	Printf(msg string, args ...any)
9 9
 }

+ 1
- 1
mtglib/internal/relay/init_test.go 파일 보기

@@ -2,4 +2,4 @@ package relay_test
2 2
 
3 3
 type loggerMock struct{}
4 4
 
5
-func (l loggerMock) Printf(format string, args ...interface{}) {}
5
+func (l loggerMock) Printf(format string, args ...any) {}

+ 1
- 1
mtglib/internal/relay/pools.go 파일 보기

@@ -3,7 +3,7 @@ package relay
3 3
 import "sync"
4 4
 
5 5
 var copyBufferPool = sync.Pool{
6
-	New: func() interface{} {
6
+	New: func() any {
7 7
 		rv := make([]byte, copyBufferSize)
8 8
 
9 9
 		return &rv

+ 1
- 1
mtglib/proxy.go 파일 보기

@@ -323,7 +323,7 @@ func NewProxy(opts ProxyOpts) (*Proxy, error) {
323 323
 	}
324 324
 
325 325
 	pool, err := ants.NewPoolWithFunc(opts.getConcurrency(),
326
-		func(arg interface{}) {
326
+		func(arg any) {
327 327
 			proxy.ServeConn(arg.(essentials.Conn)) //nolint: forcetypeassert
328 328
 		},
329 329
 		ants.WithLogger(opts.getLogger("ants")),

+ 1
- 1
mtglib/stream_context.go 파일 보기

@@ -32,7 +32,7 @@ func (s *streamContext) Err() error {
32 32
 	return s.ctx.Err() //nolint: wrapcheck
33 33
 }
34 34
 
35
-func (s *streamContext) Value(key interface{}) interface{} {
35
+func (s *streamContext) Value(key any) any {
36 36
 	return s.ctx.Value(key)
37 37
 }
38 38
 

+ 8
- 11
network/circuit_breaker_internal_test.go 파일 보기

@@ -52,17 +52,9 @@ func (suite *CircuitBreakerTestSuite) TestMultipleRunsOk() {
52 52
 		Return(suite.connMock, nil)
53 53
 
54 54
 	wg := &sync.WaitGroup{}
55
-	wg.Add(5)
56
-
57
-	go func() {
58
-		wg.Wait()
59
-		suite.ctxCancel()
60
-	}()
61
-
62
-	for i := 0; i < 5; i++ {
63
-		go func() {
64
-			defer wg.Done()
65 55
 
56
+	for range 5 {
57
+		wg.Go(func() {
66 58
 			conn, err := suite.d.DialContext(suite.ctx, "tcp", "127.0.0.1")
67 59
 
68 60
 			suite.mutex.Lock()
@@ -70,9 +62,14 @@ func (suite *CircuitBreakerTestSuite) TestMultipleRunsOk() {
70 62
 
71 63
 			suite.NoError(err)
72 64
 			suite.Equal("127.0.0.1:3128", conn.RemoteAddr().String())
73
-		}()
65
+		})
74 66
 	}
75 67
 
68
+	go func() {
69
+		wg.Wait()
70
+		suite.ctxCancel()
71
+	}()
72
+
76 73
 	suite.Eventually(func() bool {
77 74
 		_, ok := <-suite.ctx.Done()
78 75
 

+ 2
- 2
network/load_balanced_socks5.go 파일 보기

@@ -3,7 +3,7 @@ package network
3 3
 import (
4 4
 	"context"
5 5
 	"fmt"
6
-	"math/rand"
6
+	"math/rand/v2"
7 7
 	"net/url"
8 8
 
9 9
 	"github.com/9seconds/mtg/v2/essentials"
@@ -19,7 +19,7 @@ func (l loadBalancedSocks5Dialer) Dial(network, address string) (essentials.Conn
19 19
 
20 20
 func (l loadBalancedSocks5Dialer) DialContext(ctx context.Context, network, address string) (essentials.Conn, error) {
21 21
 	length := len(l.dialers)
22
-	start := rand.Intn(length)
22
+	start := rand.IntN(length)
23 23
 	moved := false
24 24
 
25 25
 	for i := start; i != start || !moved; i = (i + 1) % length {

+ 1
- 1
network/load_balanced_socks5_test.go 파일 보기

@@ -64,7 +64,7 @@ func (suite *LoadBalancedSocks5TestSuite) TestCannotDial() {
64 64
 	})
65 65
 	suite.NoError(err)
66 66
 
67
-	for i := 0; i < network.ProxyDialerOpenThreshold*2; i++ {
67
+	for range network.ProxyDialerOpenThreshold * 2 {
68 68
 		_, err = lbDialer.Dial("tcp", "127.1.1.1:80")
69 69
 		suite.True(errors.Is(err, network.ErrCannotDialWithAllProxies))
70 70
 	}

+ 5
- 13
network/network.go 파일 보기

@@ -3,7 +3,7 @@ package network
3 3
 import (
4 4
 	"context"
5 5
 	"fmt"
6
-	"math/rand"
6
+	"math/rand/v2"
7 7
 	"net"
8 8
 	"net/http"
9 9
 	"sync"
@@ -81,32 +81,24 @@ func (n *network) dnsResolve(protocol, address string) ([]string, error) {
81 81
 
82 82
 	switch protocol {
83 83
 	case "tcp", "tcp4":
84
-		wg.Add(1)
85
-
86
-		go func() {
87
-			defer wg.Done()
88
-
84
+		wg.Go(func() {
89 85
 			resolved := n.dns.LookupA(address)
90 86
 
91 87
 			mutex.Lock()
92 88
 			ips = append(ips, resolved...)
93 89
 			mutex.Unlock()
94
-		}()
90
+		})
95 91
 	}
96 92
 
97 93
 	switch protocol {
98 94
 	case "tcp", "tcp6":
99
-		wg.Add(1)
100
-
101
-		go func() {
102
-			defer wg.Done()
103
-
95
+		wg.Go(func() {
104 96
 			resolved := n.dns.LookupAAAA(address)
105 97
 
106 98
 			mutex.Lock()
107 99
 			ips = append(ips, resolved...)
108 100
 			mutex.Unlock()
109
-		}()
101
+		})
110 102
 	}
111 103
 
112 104
 	wg.Wait()

+ 1
- 1
stats/pools.go 파일 보기

@@ -3,7 +3,7 @@ package stats
3 3
 import "sync"
4 4
 
5 5
 var streamInfoPool = sync.Pool{
6
-	New: func() interface{} {
6
+	New: func() any {
7 7
 		return &streamInfo{
8 8
 			tags: make(map[string]string),
9 9
 		}

Loading…
취소
저장