Update to the latest golangci-lint

This commit is contained in:
9seconds
2026-02-11 10:20:04 +01:00
parent 37de052feb
commit ecba88d2e3
38 changed files with 82 additions and 78 deletions
+17 -18
View File
@@ -1,22 +1,21 @@
# https://golangci-lint.run/docs/configuration/file/
version = 2
[run] [run]
concurrency = 4 concurrency = 4
deadline = "2m"
tests = true tests = true
skip-dirs = ["vendor"]
[output] # [linters]
format = "colored-line-number" # enable-all = true
# disable = [
[linters] # "containedctx",
enable-all = true # "exhaustivestruct",
disable = [ # "exhaustruct",
"containedctx", # "gas",
"exhaustivestruct", # "gochecknoglobals",
"exhaustruct", # "goerr113",
"gas", # "ireturn",
"gochecknoglobals", # "thelper",
"goerr113", # "varnamelen",
"ireturn", # ]
"thelper",
"varnamelen",
]
+5
View File
@@ -10,6 +10,11 @@ sources = ["**/*.go", "go.mod", "go.sum"]
outputs = ["mtg"] outputs = ["mtg"]
run = "go build" run = "go build"
[tasks.lint]
description = "Run linter"
tools.golangci-lint = "latest"
run = "golangci-lint run"
[tasks.test] [tasks.test]
description = "Run tests" description = "Run tests"
run = "go test -v ./..." run = "go test -v ./..."
+1 -1
View File
@@ -42,7 +42,7 @@ func NewStableBloomFilter(byteSize uint, errorRate float64) mtglib.AntiReplayCac
errorRate = DefaultStableBloomFilterErrorRate errorRate = DefaultStableBloomFilterErrorRate
} }
sf := boom.NewDefaultStableBloomFilter(byteSize*8, errorRate) //nolint: gomnd sf := boom.NewDefaultStableBloomFilter(byteSize*8, errorRate)
sf.SetHash(xxhash.New64()) sf.SetHash(xxhash.New64())
return &stableBloomFilter{ return &stableBloomFilter{
+2 -2
View File
@@ -61,7 +61,7 @@ func (a *Access) Run(cli *CLI, version string) error {
} }
wg := &sync.WaitGroup{} wg := &sync.WaitGroup{}
wg.Add(2) //nolint: gomnd wg.Add(2)
go func() { go func() {
defer wg.Done() defer wg.Done()
@@ -129,7 +129,7 @@ func (a *Access) getIP(ntw mtglib.Network, protocol string) net.IP {
defer func() { defer func() {
io.Copy(io.Discard, resp.Body) //nolint: errcheck io.Copy(io.Discard, resp.Body) //nolint: errcheck
resp.Body.Close() resp.Body.Close() //nolint: errcheck
}() }()
data, err := io.ReadAll(resp.Body) data, err := io.ReadAll(resp.Body)
+2 -2
View File
@@ -164,7 +164,7 @@ func makeIPAllowlist(conf config.ListConfig,
} }
func makeEventStream(conf *config.Config, logger mtglib.Logger) (mtglib.EventStream, error) { func makeEventStream(conf *config.Config, logger mtglib.Logger) (mtglib.EventStream, error) {
factories := make([]events.ObserverFactory, 0, 2) //nolint: gomnd factories := make([]events.ObserverFactory, 0, 2)
if conf.Stats.StatsD.Enabled.Get(false) { if conf.Stats.StatsD.Enabled.Get(false) {
statsdFactory, err := stats.NewStatsd( statsdFactory, err := stats.NewStatsd(
@@ -271,7 +271,7 @@ func runProxy(conf *config.Config, version string) error { //nolint: funlen
go proxy.Serve(listener) //nolint: errcheck go proxy.Serve(listener) //nolint: errcheck
<-ctx.Done() <-ctx.Done()
listener.Close() listener.Close() //nolint: errcheck
proxy.Shutdown() proxy.Shutdown()
return nil return nil
+2 -2
View File
@@ -35,7 +35,7 @@ func (s *SimpleRun) Run(cli *CLI, version string) error { //nolint: cyclop,funle
return fmt.Errorf("incorrect secret: %w", err) return fmt.Errorf("incorrect secret: %w", err)
} }
if err := conf.Concurrency.Set(strconv.FormatUint(s.Concurrency, 10)); err != nil { //nolint: gomnd if err := conf.Concurrency.Set(strconv.FormatUint(s.Concurrency, 10)); err != nil {
return fmt.Errorf("incorrect concurrency: %w", err) return fmt.Errorf("incorrect concurrency: %w", err)
} }
@@ -43,7 +43,7 @@ func (s *SimpleRun) Run(cli *CLI, version string) error { //nolint: cyclop,funle
return fmt.Errorf("incorrect prefer-ip: %w", err) return fmt.Errorf("incorrect prefer-ip: %w", err)
} }
if err := conf.DomainFrontingPort.Set(strconv.FormatUint(s.DomainFrontingPort, 10)); err != nil { //nolint: gomnd if err := conf.DomainFrontingPort.Set(strconv.FormatUint(s.DomainFrontingPort, 10)); err != nil {
return fmt.Errorf("incorrect domain-fronting-port: %w", err) return fmt.Errorf("incorrect domain-fronting-port: %w", err)
} }
+2 -2
View File
@@ -10,7 +10,7 @@ type TypeConcurrency struct {
} }
func (t *TypeConcurrency) Set(value string) error { func (t *TypeConcurrency) Set(value string) error {
concurrencyValue, err := strconv.ParseUint(value, 10, 16) //nolint: gomnd concurrencyValue, err := strconv.ParseUint(value, 10, 16)
if err != nil { if err != nil {
return fmt.Errorf("value is not uint (%s): %w", value, err) return fmt.Errorf("value is not uint (%s): %w", value, err)
} }
@@ -41,5 +41,5 @@ func (t TypeConcurrency) MarshalJSON() ([]byte, error) {
} }
func (t TypeConcurrency) String() string { func (t TypeConcurrency) String() string {
return strconv.FormatUint(uint64(t.Value), 10) //nolint: gomnd return strconv.FormatUint(uint64(t.Value), 10)
} }
+2 -2
View File
@@ -12,7 +12,7 @@ type TypeErrorRate struct {
} }
func (t *TypeErrorRate) Set(value string) error { func (t *TypeErrorRate) Set(value string) error {
parsedValue, err := strconv.ParseFloat(value, 64) //nolint: gomnd parsedValue, err := strconv.ParseFloat(value, 64)
if err != nil { if err != nil {
return fmt.Errorf("value is not a float (%s): %w", value, err) return fmt.Errorf("value is not a float (%s): %w", value, err)
} }
@@ -43,5 +43,5 @@ func (t TypeErrorRate) MarshalJSON() ([]byte, error) {
} }
func (t TypeErrorRate) String() string { func (t TypeErrorRate) String() string {
return strconv.FormatFloat(t.Value, 'f', -1, 64) //nolint: gomnd return strconv.FormatFloat(t.Value, 'f', -1, 64)
} }
+1 -1
View File
@@ -18,7 +18,7 @@ func (t *TypeHostPort) Set(value string) error {
return fmt.Errorf("incorrect host:port value (%v): %w", value, err) return fmt.Errorf("incorrect host:port value (%v): %w", value, err)
} }
portValue, err := strconv.ParseUint(port, 10, 16) //nolint: gomnd portValue, err := strconv.ParseUint(port, 10, 16)
if err != nil { if err != nil {
return fmt.Errorf("incorrect port number (%v): %w", value, err) return fmt.Errorf("incorrect port number (%v): %w", value, err)
} }
+1 -1
View File
@@ -10,7 +10,7 @@ type TypePort struct {
} }
func (t *TypePort) Set(value string) error { func (t *TypePort) Set(value string) error {
portValue, err := strconv.ParseUint(value, 10, 16) //nolint: gomnd portValue, err := strconv.ParseUint(value, 10, 16)
if err != nil { if err != nil {
return fmt.Errorf("incorrect port number (%v): %w", value, err) return fmt.Errorf("incorrect port number (%v): %w", value, err)
} }
+1 -1
View File
@@ -35,7 +35,7 @@ func captureOutput(filefp **os.File, callback func()) string {
callback() callback()
writer.Close() writer.Close() //nolint: errcheck
<-closeChan <-closeChan
return strings.TrimSpace(buf.String()) return strings.TrimSpace(buf.String())
+1 -1
View File
@@ -18,7 +18,7 @@ func (l Listener) Accept() (net.Conn, error) {
} }
if err := network.SetClientSocketOptions(conn, 0); err != nil { if err := network.SetClientSocketOptions(conn, 0); err != nil {
conn.Close() conn.Close() //nolint: errcheck
return nil, fmt.Errorf("cannot set TCP options: %w", err) return nil, fmt.Errorf("cannot set TCP options: %w", err)
} }
+1 -1
View File
@@ -23,7 +23,7 @@ func (h httpFile) Open(ctx context.Context) (io.ReadCloser, error) {
if err != nil { if err != nil {
if response != nil { if response != nil {
io.Copy(io.Discard, response.Body) //nolint: errcheck io.Copy(io.Discard, response.Body) //nolint: errcheck
response.Body.Close() response.Body.Close() //nolint: errcheck
} }
return nil, fmt.Errorf("cannot get url %s: %w", h.url, err) return nil, fmt.Errorf("cannot get url %s: %w", h.url, err)
+1 -1
View File
@@ -77,7 +77,7 @@ func (suite *HTTPTestSuite) TestOk() {
readCloser, err := file.Open(suite.ctx) readCloser, err := file.Open(suite.ctx)
suite.NoError(err) suite.NoError(err)
defer readCloser.Close() defer readCloser.Close() //nolint: errcheck
data, err := io.ReadAll(readCloser) data, err := io.ReadAll(readCloser)
suite.NoError(err) suite.NoError(err)
+3 -3
View File
@@ -19,8 +19,8 @@ import (
var ( var (
fireholRegexpComment = regexp.MustCompile(`\s*#.*?$`) fireholRegexpComment = regexp.MustCompile(`\s*#.*?$`)
fireholIPv4DefaultCIDR = net.CIDRMask(32, 32) //nolint: gomnd fireholIPv4DefaultCIDR = net.CIDRMask(32, 32)
fireholIPv6DefaultCIDR = net.CIDRMask(128, 128) //nolint: gomnd fireholIPv6DefaultCIDR = net.CIDRMask(128, 128)
) )
// FireholUpdateCallback defines a signature of the callback that has to be // FireholUpdateCallback defines a signature of the callback that has to be
@@ -130,7 +130,7 @@ func (f *Firehol) update() {
return return
} }
defer fileContent.Close() defer fileContent.Close() //nolint: errcheck
if err := f.updateFromFile(mutex, ranger, bufio.NewScanner(fileContent)); err != nil { if err := f.updateFromFile(mutex, ranger, bufio.NewScanner(fileContent)); err != nil {
logger.WarningError("update has failed", err) logger.WarningError("update has failed", err)
+1 -1
View File
@@ -35,7 +35,7 @@ func (suite *FireholTestSuite) SetupSuite() {
panic(err) panic(err)
} }
defer filefp.Close() defer filefp.Close() //nolint: errcheck
io.Copy(w, filefp) //nolint: errcheck io.Copy(w, filefp) //nolint: errcheck
}) })
+2 -2
View File
@@ -56,7 +56,7 @@ func ParseClientHello(secret, handshake []byte) (ClientHello, error) {
if len(handshake)-4 != int(handshakeLength) { if len(handshake)-4 != int(handshakeLength) {
return hello, return hello,
fmt.Errorf("incorrect handshake size. manifested=%d, real=%d", fmt.Errorf("incorrect handshake size. manifested=%d, real=%d",
handshakeLength, len(handshake)-4) //nolint: gomnd handshakeLength, len(handshake)-4)
} }
copy(hello.Random[:], handshake[ClientHelloRandomOffset:]) copy(hello.Random[:], handshake[ClientHelloRandomOffset:])
@@ -100,7 +100,7 @@ func parseSessionID(hello *ClientHello, handshake []byte) {
} }
func parseCipherSuite(hello *ClientHello, handshake []byte) { func parseCipherSuite(hello *ClientHello, handshake []byte) {
cipherSuiteOffset := ClientHelloSessionIDOffset + len(hello.SessionID) + 3 //nolint: gomnd cipherSuiteOffset := ClientHelloSessionIDOffset + len(hello.SessionID) + 3
hello.CipherSuite = binary.BigEndian.Uint16(handshake[cipherSuiteOffset : cipherSuiteOffset+2]) hello.CipherSuite = binary.BigEndian.Uint16(handshake[cipherSuiteOffset : cipherSuiteOffset+2])
} }
+1 -1
View File
@@ -36,7 +36,7 @@ func SendWelcomePacket(writer io.Writer, secret []byte, clientHello ClientHello)
rec.Type = record.TypeApplicationData rec.Type = record.TypeApplicationData
rec.Version = record.Version12 rec.Version = record.Version12
if _, err := io.CopyN(&rec.Payload, rand.Reader, int64(1024+mrand.Intn(3092))); err != nil { //nolint: gomnd if _, err := io.CopyN(&rec.Payload, rand.Reader, int64(1024+mrand.Intn(3092))); err != nil {
panic(err) panic(err)
} }
@@ -36,7 +36,7 @@ type handshakeFrame struct {
} }
func (h *handshakeFrame) dc() int { func (h *handshakeFrame) dc() int {
idx := int16(h.data[handshakeFrameOffsetDC]) | int16(h.data[handshakeFrameOffsetDC+1])<<8 //nolint: gomnd, lll // little endian for int16 is here idx := int16(h.data[handshakeFrameOffsetDC]) | int16(h.data[handshakeFrameOffsetDC+1])<<8 //nolint: lll // little endian for int16 is here
switch { switch {
case idx > 0: case idx > 0:
@@ -47,12 +47,12 @@ func generateServerHanshakeFrame() serverHandshakeFrame {
panic(err) panic(err)
} }
if frame.data[0] == 0xef { //nolint: gomnd // taken from tg sources if frame.data[0] == 0xef { // taken from tg sources
continue continue
} }
switch binary.LittleEndian.Uint32(frame.data[:4]) { switch binary.LittleEndian.Uint32(frame.data[:4]) {
case 0x44414548, 0x54534f50, 0x20544547, 0x4954504f, 0xeeeeeeee: //nolint: gomnd // taken from tg sources case 0x44414548, 0x54534f50, 0x20544547, 0x4954504f, 0xeeeeeeee: // taken from tg sources
continue continue
} }
+4 -4
View File
@@ -9,16 +9,16 @@ import (
) )
func Relay(ctx context.Context, log Logger, telegramConn, clientConn essentials.Conn) { func Relay(ctx context.Context, log Logger, telegramConn, clientConn essentials.Conn) {
defer telegramConn.Close() defer telegramConn.Close() //nolint: errcheck
defer clientConn.Close() defer clientConn.Close() //nolint: errcheck
ctx, cancel := context.WithCancel(ctx) ctx, cancel := context.WithCancel(ctx)
defer cancel() defer cancel()
go func() { go func() {
<-ctx.Done() <-ctx.Done()
telegramConn.Close() telegramConn.Close() //nolint: errcheck
clientConn.Close() clientConn.Close() //nolint: errcheck
}() }()
closeChan := make(chan struct{}) closeChan := make(chan struct{})
+3 -3
View File
@@ -110,7 +110,7 @@ func (p *Proxy) Serve(listener net.Listener) error {
logger := p.logger.BindStr("ip", ipAddr.String()) logger := p.logger.BindStr("ip", ipAddr.String())
if !p.allowlist.Contains(ipAddr) { if !p.allowlist.Contains(ipAddr) {
conn.Close() conn.Close() //nolint: errcheck
logger.Info("ip was rejected by allowlist") logger.Info("ip was rejected by allowlist")
p.eventStream.Send(p.ctx, NewEventIPAllowlisted(ipAddr)) p.eventStream.Send(p.ctx, NewEventIPAllowlisted(ipAddr))
@@ -118,7 +118,7 @@ func (p *Proxy) Serve(listener net.Listener) error {
} }
if p.blocklist.Contains(ipAddr) { if p.blocklist.Contains(ipAddr) {
conn.Close() conn.Close() //nolint: errcheck
logger.Info("ip was blacklisted") logger.Info("ip was blacklisted")
p.eventStream.Send(p.ctx, NewEventIPBlocklisted(ipAddr)) p.eventStream.Send(p.ctx, NewEventIPBlocklisted(ipAddr))
@@ -235,7 +235,7 @@ func (p *Proxy) doTelegramCall(ctx *streamContext) error {
encryptor, decryptor, err := obfuscated2.ServerHandshake(conn) encryptor, decryptor, err := obfuscated2.ServerHandshake(conn)
if err != nil { if err != nil {
conn.Close() conn.Close() //nolint: errcheck
return fmt.Errorf("cannot perform obfuscated2 handshake: %w", err) return fmt.Errorf("cannot perform obfuscated2 handshake: %w", err)
} }
+2 -2
View File
@@ -86,7 +86,7 @@ func (suite *ProxyTestSuite) SetupSuite() {
func (suite *ProxyTestSuite) TearDownSuite() { func (suite *ProxyTestSuite) TearDownSuite() {
if suite.listener != nil { if suite.listener != nil {
suite.listener.Close() suite.listener.Close() //nolint: errcheck
} }
if suite.p != nil { if suite.p != nil {
@@ -177,7 +177,7 @@ func (suite *ProxyTestSuite) TestHTTPSRequest() {
resp, err := client.Get(addr) //nolint: noctx resp, err := client.Get(addr) //nolint: noctx
suite.NoError(err) suite.NoError(err)
defer resp.Body.Close() defer resp.Body.Close() //nolint: errcheck
suite.Equal(http.StatusOK, resp.StatusCode) suite.Equal(http.StatusOK, resp.StatusCode)
+1 -1
View File
@@ -74,7 +74,7 @@ func (s *Secret) Set(text string) error {
return fmt.Errorf("incorrect secret format: %w", err) return fmt.Errorf("incorrect secret format: %w", err)
} }
if len(decoded) < 2 { //nolint: gomnd // we need at least 1 byte here if len(decoded) < 2 { // we need at least 1 byte here
return fmt.Errorf("secret is truncated, length=%d", len(decoded)) return fmt.Errorf("secret is truncated, length=%d", len(decoded))
} }
+2 -2
View File
@@ -40,11 +40,11 @@ func (s *streamContext) Close() {
s.ctxCancel() s.ctxCancel()
if s.clientConn != nil { if s.clientConn != nil {
s.clientConn.Close() s.clientConn.Close() //nolint: errcheck
} }
if s.telegramConn != nil { if s.telegramConn != nil {
s.telegramConn.Close() s.telegramConn.Close() //nolint: errcheck
} }
} }
+1 -1
View File
@@ -24,7 +24,7 @@ func (suite *StreamContextTestSuite) SetupSuite() {
func (suite *StreamContextTestSuite) SetupTest() { func (suite *StreamContextTestSuite) SetupTest() {
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
ctx = context.WithValue(ctx, "key", "value") //nolint: golint, staticcheck ctx = context.WithValue(ctx, "key", "value") //nolint: staticcheck
suite.ctxCancel = cancel suite.ctxCancel = cancel
suite.connMock = &testlib.EssentialsConnMock{} suite.connMock = &testlib.EssentialsConnMock{}
+2 -2
View File
@@ -56,7 +56,7 @@ func (c *circuitBreakerDialer) doClosed(ctx context.Context,
select { select {
case <-ctx.Done(): case <-ctx.Done():
if conn != nil { if conn != nil {
conn.Close() conn.Close() //nolint: errcheck
} }
return nil, ctx.Err() //nolint: wrapcheck return nil, ctx.Err() //nolint: wrapcheck
@@ -93,7 +93,7 @@ func (c *circuitBreakerDialer) doHalfOpened(ctx context.Context,
select { select {
case <-ctx.Done(): case <-ctx.Done():
if conn != nil { if conn != nil {
conn.Close() conn.Close() //nolint: errcheck
} }
return nil, ctx.Err() //nolint: wrapcheck return nil, ctx.Err() //nolint: wrapcheck
+1 -1
View File
@@ -31,7 +31,7 @@ func (d *defaultDialer) DialContext(ctx context.Context, network, address string
// we do not need to call to end user. End users call us. // we do not need to call to end user. End users call us.
if err := SetServerSocketOptions(conn, 0); err != nil { if err := SetServerSocketOptions(conn, 0); err != nil {
conn.Close() conn.Close() //nolint: errcheck
return nil, fmt.Errorf("cannot set socket options: %w", err) return nil, fmt.Errorf("cannot set socket options: %w", err)
} }
+2 -2
View File
@@ -51,7 +51,7 @@ func (suite *DefaultDialerTestSuite) TestConnectOk() {
suite.NoError(err) suite.NoError(err)
suite.NotNil(conn) suite.NotNil(conn)
conn.Close() conn.Close() //nolint: errcheck
} }
func (suite *DefaultDialerTestSuite) TestHTTPRequest() { func (suite *DefaultDialerTestSuite) TestHTTPRequest() {
@@ -59,7 +59,7 @@ func (suite *DefaultDialerTestSuite) TestHTTPRequest() {
resp, err := httpClient.Get(suite.MakeURL("/get")) //nolint: noctx resp, err := httpClient.Get(suite.MakeURL("/get")) //nolint: noctx
if err == nil { if err == nil {
defer resp.Body.Close() defer resp.Body.Close() //nolint: errcheck
} }
suite.NoError(err) suite.NoError(err)
+1 -1
View File
@@ -78,7 +78,7 @@ func (suite *Socks5ServerTestSuite) SetupSuite() {
} }
func (suite *Socks5ServerTestSuite) TearDownSuite() { func (suite *Socks5ServerTestSuite) TearDownSuite() {
suite.socks5Listener.Close() suite.socks5Listener.Close() //nolint: errcheck
} }
func (suite *Socks5ServerTestSuite) MakeSocks5URL(user, password string) *url.URL { func (suite *Socks5ServerTestSuite) MakeSocks5URL(user, password string) *url.URL {
+1 -1
View File
@@ -75,7 +75,7 @@ func (suite *LoadBalancedSocks5TestSuite) TestCannotDial() {
func (suite *LoadBalancedSocks5TestSuite) TestDialOk() { func (suite *LoadBalancedSocks5TestSuite) TestDialOk() {
resp, err := suite.httpClient.Get(suite.MakeURL("/get")) //nolint: noctx resp, err := suite.httpClient.Get(suite.MakeURL("/get")) //nolint: noctx
if err == nil { if err == nil {
defer resp.Body.Close() defer resp.Body.Close() //nolint: errcheck
} }
suite.NoError(err) suite.NoError(err)
+2 -2
View File
@@ -34,7 +34,7 @@ func (suite *NetworkTestSuite) TestLocalHTTPRequest() {
resp, err := client.Get(suite.httpServer.URL + "/headers") //nolint: noctx resp, err := client.Get(suite.httpServer.URL + "/headers") //nolint: noctx
suite.NoError(err) suite.NoError(err)
defer resp.Body.Close() defer resp.Body.Close() //nolint: errcheck
data, err := io.ReadAll(resp.Body) data, err := io.ReadAll(resp.Body)
suite.NoError(err) suite.NoError(err)
@@ -59,7 +59,7 @@ func (suite *NetworkTestSuite) TestRealHTTPRequest() {
resp, err := client.Get("https://httpbin.org/headers") //nolint: noctx resp, err := client.Get("https://httpbin.org/headers") //nolint: noctx
suite.NoError(err) suite.NoError(err)
defer resp.Body.Close() defer resp.Body.Close() //nolint: errcheck
data, err := io.ReadAll(resp.Body) data, err := io.ReadAll(resp.Body)
suite.NoError(err) suite.NoError(err)
+1 -1
View File
@@ -16,7 +16,7 @@ func newProxyDialer(baseDialer Dialer, proxyURL *url.URL) Dialer {
) )
if param := params.Get("open_threshold"); param != "" { if param := params.Get("open_threshold"); param != "" {
if intNum, err := strconv.ParseUint(param, 10, 32); err == nil { //nolint: gomnd if intNum, err := strconv.ParseUint(param, 10, 32); err == nil {
openThreshold = uint32(intNum) openThreshold = uint32(intNum)
} }
} }
+2 -2
View File
@@ -14,14 +14,14 @@ func setSocketReuseAddrPort(conn syscall.RawConn) error {
var err error var err error
conn.Control(func(fd uintptr) { //nolint: errcheck conn.Control(func(fd uintptr) { //nolint: errcheck
err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEADDR, 1) //nolint: nosnakecase err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEADDR, 1)
if err != nil { if err != nil {
err = fmt.Errorf("cannot set SO_REUSEADDR: %w", err) err = fmt.Errorf("cannot set SO_REUSEADDR: %w", err)
return return
} }
err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEPORT, 1) //nolint: nosnakecase err = unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEPORT, 1)
if err != nil { if err != nil {
err = fmt.Errorf("cannot set SO_REUSEPORT: %w", err) err = fmt.Errorf("cannot set SO_REUSEPORT: %w", err)
} }
+2 -2
View File
@@ -36,13 +36,13 @@ func (s socks5Dialer) DialContext(ctx context.Context, network, address string)
} }
if err := s.handshake(conn); err != nil { if err := s.handshake(conn); err != nil {
conn.Close() conn.Close() //nolint: errcheck
return nil, fmt.Errorf("cannot perform a handshake: %w", err) return nil, fmt.Errorf("cannot perform a handshake: %w", err)
} }
if err := s.connect(conn, address); err != nil { if err := s.connect(conn, address); err != nil {
conn.Close() conn.Close() //nolint: errcheck
return nil, fmt.Errorf("cannot connect to a destination host %s: %w", address, err) return nil, fmt.Errorf("cannot connect to a destination host %s: %w", address, err)
} }
+2 -2
View File
@@ -35,7 +35,7 @@ func (suite *Socks5TestSuite) TestRequestFailed() {
resp, err := httpClient.Get(suite.MakeURL("/get")) //nolint: noctx resp, err := httpClient.Get(suite.MakeURL("/get")) //nolint: noctx
if err == nil { if err == nil {
defer resp.Body.Close() defer resp.Body.Close() //nolint: errcheck
} }
suite.Error(err) suite.Error(err)
@@ -48,7 +48,7 @@ func (suite *Socks5TestSuite) TestRequestOk() {
resp, err := httpClient.Get(suite.MakeURL("/get")) //nolint: noctx resp, err := httpClient.Get(suite.MakeURL("/get")) //nolint: noctx
if err == nil { if err == nil {
defer resp.Body.Close() defer resp.Body.Close() //nolint: errcheck
} }
suite.NoError(err) suite.NoError(err)
+2 -2
View File
@@ -30,7 +30,7 @@ func (suite *PrometheusTestSuite) Get() (string, error) {
return "", err //nolint: wrapcheck return "", err //nolint: wrapcheck
} }
defer resp.Body.Close() defer resp.Body.Close() //nolint: errcheck
data, err := io.ReadAll(resp.Body) data, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
@@ -51,7 +51,7 @@ func (suite *PrometheusTestSuite) SetupTest() {
func (suite *PrometheusTestSuite) TearDownTest() { func (suite *PrometheusTestSuite) TearDownTest() {
suite.prometheus.Shutdown() suite.prometheus.Shutdown()
suite.NoError(suite.factory.Close()) suite.NoError(suite.factory.Close())
suite.httpListener.Close() suite.httpListener.Close() //nolint: errcheck
} }
func (suite *PrometheusTestSuite) TestTelegramPath() { func (suite *PrometheusTestSuite) TestTelegramPath() {
+2 -2
View File
@@ -100,8 +100,8 @@ func (suite *StatsdTestSuite) SetupTest() {
func (suite *StatsdTestSuite) TearDownTest() { func (suite *StatsdTestSuite) TearDownTest() {
suite.statsd.Shutdown() suite.statsd.Shutdown()
suite.factory.Close() suite.factory.Close() //nolint: errcheck
suite.statsdServer.Close() suite.statsdServer.Close() //nolint: errcheck
} }
func (suite *StatsdTestSuite) TestTelegramPath() { func (suite *StatsdTestSuite) TestTelegramPath() {