diff --git a/go.mod b/go.mod index b9e46e8ca7..12f5dbefa1 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/prometheus/procfs v0.19.2 // indirect github.com/rs/zerolog v1.34.0 github.com/smira/go-statsd v1.3.4 - github.com/stretchr/objx v0.5.2 // indirect + github.com/stretchr/objx v0.5.3 // indirect github.com/stretchr/testify v1.11.1 github.com/tylertreat/BoomFilters v0.0.0-20251117164519-53813c36cc1b golang.org/x/crypto v0.48.0 diff --git a/go.sum b/go.sum index aac55d1a6d..f7d495194c 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,9 @@ github.com/smira/go-statsd v1.3.4/go.mod h1:RjdsESPgDODtg1VpVVf9MJrEW2Hw0wtRNbmB github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= diff --git a/internal/cli/access.go b/internal/cli/access.go index 766a793f1c..2e99c98adf 100644 --- a/internal/cli/access.go +++ b/internal/cli/access.go @@ -129,7 +129,7 @@ func (a *Access) getIP(ntw mtglib.Network, protocol string) net.IP { defer func() { io.Copy(io.Discard, resp.Body) //nolint: errcheck - resp.Body.Close() //nolint: errcheck + resp.Body.Close() //nolint: errcheck }() data, err := io.ReadAll(resp.Body) diff --git a/internal/config/type_bool_test.go b/internal/config/type_bool_test.go index 99d0488f59..8098f05c10 100644 --- a/internal/config/type_bool_test.go +++ b/internal/config/type_bool_test.go @@ -20,7 +20,7 @@ type TypeBoolTestSuite struct { } func (suite *TypeBoolTestSuite) TestUnmarshalFail() { - testData := []interface{}{ + testData := []any{ "", "np", "нет", @@ -29,7 +29,7 @@ func (suite *TypeBoolTestSuite) TestUnmarshalFail() { } for _, v := range testData { - data, err := json.Marshal(map[string]interface{}{ + data, err := json.Marshal(map[string]any{ "value": v, }) suite.NoError(err) diff --git a/internal/utils/root_context.go b/internal/utils/root_context.go index 0f24c3fce1..0bb43aa88c 100644 --- a/internal/utils/root_context.go +++ b/internal/utils/root_context.go @@ -1,5 +1,4 @@ //go:build !windows -// +build !windows package utils diff --git a/internal/utils/root_context_windows.go b/internal/utils/root_context_windows.go index 97b66b7112..1760c20612 100644 --- a/internal/utils/root_context_windows.go +++ b/internal/utils/root_context_windows.go @@ -1,5 +1,4 @@ //go:build windows -// +build windows package utils diff --git a/ipblocklist/files/http.go b/ipblocklist/files/http.go index 84bbfbce51..40fb6210e2 100644 --- a/ipblocklist/files/http.go +++ b/ipblocklist/files/http.go @@ -23,7 +23,7 @@ func (h httpFile) Open(ctx context.Context) (io.ReadCloser, error) { if err != nil { if response != nil { io.Copy(io.Discard, response.Body) //nolint: errcheck - response.Body.Close() //nolint: errcheck + response.Body.Close() //nolint: errcheck } return nil, fmt.Errorf("cannot get url %s: %w", h.url, err) diff --git a/logger/init.go b/logger/init.go index da4ff400c4..56906fcd86 100644 --- a/logger/init.go +++ b/logger/init.go @@ -8,5 +8,5 @@ package logger // commonly used by many 3pp tools. While mtglib itself does not need it, it is // always a good idea to support it and have a transient end to end logging. type StdLikeLogger interface { - Printf(format string, args ...interface{}) + Printf(format string, args ...any) } diff --git a/logger/noop.go b/logger/noop.go index 5d04b795eb..768e48b649 100644 --- a/logger/noop.go +++ b/logger/noop.go @@ -8,7 +8,7 @@ func (n noopLogger) Named(_ string) mtglib.Logger { return n } func (n noopLogger) BindInt(_ string, _ int) mtglib.Logger { return n } func (n noopLogger) BindStr(_, _ string) mtglib.Logger { return n } func (n noopLogger) BindJSON(_, _ string) mtglib.Logger { return n } -func (n noopLogger) Printf(_ string, _ ...interface{}) {} +func (n noopLogger) Printf(_ string, _ ...any) {} func (n noopLogger) Info(_ string) {} func (n noopLogger) Warning(_ string) {} func (n noopLogger) Debug(_ string) {} diff --git a/logger/zerolog.go b/logger/zerolog.go index 4f9c9b7052..4cf7cd6c67 100644 --- a/logger/zerolog.go +++ b/logger/zerolog.go @@ -78,7 +78,7 @@ func (z *zeroLogContext) BindJSON(name, value string) mtglib.Logger { } } -func (z *zeroLogContext) Printf(format string, args ...interface{}) { +func (z *zeroLogContext) Printf(format string, args ...any) { z.Debug(fmt.Sprintf(format, args...)) } diff --git a/mtglib/init.go b/mtglib/init.go index 40e3f41260..81dee7a014 100644 --- a/mtglib/init.go +++ b/mtglib/init.go @@ -249,7 +249,7 @@ type Logger interface { BindJSON(name, value string) Logger // Printf is to support log.Logger behavior. - Printf(format string, args ...interface{}) + Printf(format string, args ...any) // Info puts a message about some normal situation. Info(msg string) diff --git a/mtglib/init_internal_test.go b/mtglib/init_internal_test.go index b182d57c69..50833e83c3 100644 --- a/mtglib/init_internal_test.go +++ b/mtglib/init_internal_test.go @@ -8,17 +8,17 @@ import ( type NoopLogger struct{} -func (n NoopLogger) Named(_ string) Logger { return n } -func (n NoopLogger) BindInt(_ string, _ int) Logger { return n } -func (n NoopLogger) BindStr(_, _ string) Logger { return n } -func (n NoopLogger) BindJSON(_, _ string) Logger { return n } -func (n NoopLogger) Printf(_ string, _ ...interface{}) {} -func (n NoopLogger) Info(_ string) {} -func (n NoopLogger) Warning(_ string) {} -func (n NoopLogger) Debug(_ string) {} -func (n NoopLogger) InfoError(_ string, _ error) {} -func (n NoopLogger) WarningError(_ string, _ error) {} -func (n NoopLogger) DebugError(_ string, _ error) {} +func (n NoopLogger) Named(_ string) Logger { return n } +func (n NoopLogger) BindInt(_ string, _ int) Logger { return n } +func (n NoopLogger) BindStr(_, _ string) Logger { return n } +func (n NoopLogger) BindJSON(_, _ string) Logger { return n } +func (n NoopLogger) Printf(_ string, _ ...any) {} +func (n NoopLogger) Info(_ string) {} +func (n NoopLogger) Warning(_ string) {} +func (n NoopLogger) Debug(_ string) {} +func (n NoopLogger) InfoError(_ string, _ error) {} +func (n NoopLogger) WarningError(_ string, _ error) {} +func (n NoopLogger) DebugError(_ string, _ error) {} type EventStreamMock struct { mock.Mock diff --git a/mtglib/internal/faketls/client_hello.go b/mtglib/internal/faketls/client_hello.go index d27d769cce..0e5e5b4a22 100644 --- a/mtglib/internal/faketls/client_hello.go +++ b/mtglib/internal/faketls/client_hello.go @@ -76,7 +76,7 @@ func ParseClientHello(secret, handshake []byte) (ClientHello, error) { computedRandom := mac.Sum(nil) - for i := 0; i < RandomLen; i++ { + for i := range RandomLen { computedRandom[i] ^= hello.Random[i] } diff --git a/mtglib/internal/faketls/pools.go b/mtglib/internal/faketls/pools.go index 54183a0875..b1f4275c17 100644 --- a/mtglib/internal/faketls/pools.go +++ b/mtglib/internal/faketls/pools.go @@ -6,7 +6,7 @@ import ( ) var bytesBufferPool = sync.Pool{ - New: func() interface{} { + New: func() any { return &bytes.Buffer{} }, } diff --git a/mtglib/internal/faketls/record/pools.go b/mtglib/internal/faketls/record/pools.go index cc4739a5e3..4f758b7843 100644 --- a/mtglib/internal/faketls/record/pools.go +++ b/mtglib/internal/faketls/record/pools.go @@ -5,7 +5,7 @@ import ( ) var recordPool = sync.Pool{ - New: func() interface{} { + New: func() any { return &Record{} }, } diff --git a/mtglib/internal/obfuscated2/handshake_frame.go b/mtglib/internal/obfuscated2/handshake_frame.go index 8fec8897e3..0dd3c6ce5a 100644 --- a/mtglib/internal/obfuscated2/handshake_frame.go +++ b/mtglib/internal/obfuscated2/handshake_frame.go @@ -63,7 +63,7 @@ func (h *handshakeFrame) connectionType() []byte { func (h *handshakeFrame) invert() handshakeFrame { copyFrame := *h - for i := 0; i < handshakeFrameLenKey+handshakeFrameLenIV; i++ { + for i := range handshakeFrameLenKey + handshakeFrameLenIV { copyFrame.data[handshakeFrameOffsetKey+i] = h.data[handshakeFrameOffsetConnectionType-1-i] } diff --git a/mtglib/internal/obfuscated2/init_test.go b/mtglib/internal/obfuscated2/init_test.go index 50d031c8ed..5aa85a99b9 100644 --- a/mtglib/internal/obfuscated2/init_test.go +++ b/mtglib/internal/obfuscated2/init_test.go @@ -117,7 +117,7 @@ func NewServerHandshakeTestData(t *testing.T) ServerHandshakeTestData { serverEncryptedReverted := make([]byte, len(serverEncrypted)) - for i := 0; i < 32+16; i++ { + for i := range 32 + 16 { serverEncryptedReverted[8+i] = serverEncrypted[8+32+16-1-i] } diff --git a/mtglib/internal/obfuscated2/pools.go b/mtglib/internal/obfuscated2/pools.go index f714262d1f..5f10fd2094 100644 --- a/mtglib/internal/obfuscated2/pools.go +++ b/mtglib/internal/obfuscated2/pools.go @@ -9,12 +9,12 @@ import ( var ( sha256HasherPool = sync.Pool{ - New: func() interface{} { + New: func() any { return sha256.New() }, } bytesBufferPool = sync.Pool{ - New: func() interface{} { + New: func() any { return &bytes.Buffer{} }, } diff --git a/mtglib/internal/relay/init.go b/mtglib/internal/relay/init.go index a0dcb0c3f9..8bcc66c9b8 100644 --- a/mtglib/internal/relay/init.go +++ b/mtglib/internal/relay/init.go @@ -5,5 +5,5 @@ const ( ) type Logger interface { - Printf(msg string, args ...interface{}) + Printf(msg string, args ...any) } diff --git a/mtglib/internal/relay/init_test.go b/mtglib/internal/relay/init_test.go index e43244a88f..c884532e0a 100644 --- a/mtglib/internal/relay/init_test.go +++ b/mtglib/internal/relay/init_test.go @@ -2,4 +2,4 @@ package relay_test type loggerMock struct{} -func (l loggerMock) Printf(format string, args ...interface{}) {} +func (l loggerMock) Printf(format string, args ...any) {} diff --git a/mtglib/internal/relay/pools.go b/mtglib/internal/relay/pools.go index 49ac7acad1..db42933b65 100644 --- a/mtglib/internal/relay/pools.go +++ b/mtglib/internal/relay/pools.go @@ -3,7 +3,7 @@ package relay import "sync" var copyBufferPool = sync.Pool{ - New: func() interface{} { + New: func() any { rv := make([]byte, copyBufferSize) return &rv diff --git a/mtglib/internal/relay/relay.go b/mtglib/internal/relay/relay.go index ac35cf94d3..060a05cd32 100644 --- a/mtglib/internal/relay/relay.go +++ b/mtglib/internal/relay/relay.go @@ -10,7 +10,7 @@ import ( func Relay(ctx context.Context, log Logger, telegramConn, clientConn essentials.Conn) { defer telegramConn.Close() //nolint: errcheck - defer clientConn.Close() //nolint: errcheck + defer clientConn.Close() //nolint: errcheck ctx, cancel := context.WithCancel(ctx) defer cancel() @@ -18,7 +18,7 @@ func Relay(ctx context.Context, log Logger, telegramConn, clientConn essentials. go func() { <-ctx.Done() telegramConn.Close() //nolint: errcheck - clientConn.Close() //nolint: errcheck + clientConn.Close() //nolint: errcheck }() closeChan := make(chan struct{}) diff --git a/mtglib/internal/telegram/telegram_internal_test.go b/mtglib/internal/telegram/telegram_internal_test.go index 794e97adc2..a94bf15249 100644 --- a/mtglib/internal/telegram/telegram_internal_test.go +++ b/mtglib/internal/telegram/telegram_internal_test.go @@ -140,7 +140,7 @@ func (suite *TelegramTestSuite) TestUnknownPreferIP() { func (suite *TelegramTestSuite) TestFallbackDC() { dcs := make([]int, 10) - for i := 0; i < len(dcs); i++ { + for i := range dcs { dcs[i] = suite.t.GetFallbackDC() } diff --git a/mtglib/proxy.go b/mtglib/proxy.go index e63f6ba29f..345a94cd47 100644 --- a/mtglib/proxy.go +++ b/mtglib/proxy.go @@ -315,7 +315,7 @@ func NewProxy(opts ProxyOpts) (*Proxy, error) { } pool, err := ants.NewPoolWithFunc(opts.getConcurrency(), - func(arg interface{}) { + func(arg any) { proxy.ServeConn(arg.(essentials.Conn)) //nolint: forcetypeassert }, ants.WithLogger(opts.getLogger("ants")), diff --git a/mtglib/stream_context.go b/mtglib/stream_context.go index 3c6a7399b3..3858282ba9 100644 --- a/mtglib/stream_context.go +++ b/mtglib/stream_context.go @@ -32,7 +32,7 @@ func (s *streamContext) Err() error { return s.ctx.Err() //nolint: wrapcheck } -func (s *streamContext) Value(key interface{}) interface{} { +func (s *streamContext) Value(key any) any { return s.ctx.Value(key) } diff --git a/network/circuit_breaker_internal_test.go b/network/circuit_breaker_internal_test.go index 16a844337d..fc7f67169c 100644 --- a/network/circuit_breaker_internal_test.go +++ b/network/circuit_breaker_internal_test.go @@ -59,7 +59,7 @@ func (suite *CircuitBreakerTestSuite) TestMultipleRunsOk() { suite.ctxCancel() }() - for i := 0; i < 5; i++ { + for range 5 { go func() { defer wg.Done() diff --git a/network/load_balanced_socks5_test.go b/network/load_balanced_socks5_test.go index 1d5e86c785..96298ac37f 100644 --- a/network/load_balanced_socks5_test.go +++ b/network/load_balanced_socks5_test.go @@ -64,7 +64,7 @@ func (suite *LoadBalancedSocks5TestSuite) TestCannotDial() { }) suite.NoError(err) - for i := 0; i < network.ProxyDialerOpenThreshold*2; i++ { + for range network.ProxyDialerOpenThreshold * 2 { _, err = lbDialer.Dial("tcp", "127.1.1.1:80") suite.True(errors.Is(err, network.ErrCannotDialWithAllProxies)) } diff --git a/network/network.go b/network/network.go index 3f68b112e1..57b0f2e9d4 100644 --- a/network/network.go +++ b/network/network.go @@ -81,32 +81,28 @@ func (n *network) dnsResolve(protocol, address string) ([]string, error) { switch protocol { case "tcp", "tcp4": - wg.Add(1) - go func() { - defer wg.Done() + wg.Go(func() { resolved := n.dns.LookupA(address) mutex.Lock() ips = append(ips, resolved...) mutex.Unlock() - }() + }) } switch protocol { case "tcp", "tcp6": - wg.Add(1) - go func() { - defer wg.Done() + wg.Go(func() { resolved := n.dns.LookupAAAA(address) mutex.Lock() ips = append(ips, resolved...) mutex.Unlock() - }() + }) } wg.Wait() diff --git a/network/sockopts_unix.go b/network/sockopts_unix.go index 75df3af722..29bfcb4646 100644 --- a/network/sockopts_unix.go +++ b/network/sockopts_unix.go @@ -1,5 +1,4 @@ //go:build !windows -// +build !windows package network diff --git a/network/sockopts_windows.go b/network/sockopts_windows.go index 32a702a3b2..b8cd910f57 100644 --- a/network/sockopts_windows.go +++ b/network/sockopts_windows.go @@ -1,5 +1,4 @@ //go:build windows -// +build windows package network diff --git a/stats/pools.go b/stats/pools.go index a8c962197c..f80286a7c0 100644 --- a/stats/pools.go +++ b/stats/pools.go @@ -3,7 +3,7 @@ package stats import "sync" var streamInfoPool = sync.Pool{ - New: func() interface{} { + New: func() any { return &streamInfo{ tags: make(map[string]string), } diff --git a/stats/statsd_test.go b/stats/statsd_test.go index a8759bacf6..5587345b00 100644 --- a/stats/statsd_test.go +++ b/stats/statsd_test.go @@ -100,7 +100,7 @@ func (suite *StatsdTestSuite) SetupTest() { func (suite *StatsdTestSuite) TearDownTest() { suite.statsd.Shutdown() - suite.factory.Close() //nolint: errcheck + suite.factory.Close() //nolint: errcheck suite.statsdServer.Close() //nolint: errcheck }