mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-08 03:07:15 +00:00
fix(amneziawg): satisfy golangci-lint in relay.go
errcheck: explicitly discard io.Copy's error in the two fire-and-forget relay goroutines -- a copy error there just means the connection closed, which is the expected/normal way this loop ends, not something to handle further. noctx: net.DialTimeout must not be called per this repo's lint config; use (*net.Dialer).DialContext with Timeout set instead, same as the rest of the codebase already does. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
package amneziawgnet
|
package amneziawgnet
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -80,8 +81,8 @@ func (r SocksRelay) RelayTCP(conn *gonet.TCPConn, email string, dest netip.AddrP
|
|||||||
defer upstream.Close()
|
defer upstream.Close()
|
||||||
|
|
||||||
done := make(chan struct{}, 2)
|
done := make(chan struct{}, 2)
|
||||||
go func() { io.Copy(upstream, conn); done <- struct{}{} }()
|
go func() { _, _ = io.Copy(upstream, conn); done <- struct{}{} }()
|
||||||
go func() { io.Copy(conn, upstream); done <- struct{}{} }()
|
go func() { _, _ = io.Copy(conn, upstream); done <- struct{}{} }()
|
||||||
<-done
|
<-done
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +102,8 @@ type socks5UDPSession struct {
|
|||||||
// types, not reusable as a standalone dialer -- so this is a small, direct,
|
// types, not reusable as a standalone dialer -- so this is a small, direct,
|
||||||
// from-the-RFC implementation rather than an existing library call.
|
// from-the-RFC implementation rather than an existing library call.
|
||||||
func newSocks5UDPSession(addr, user, password string) (*socks5UDPSession, error) {
|
func newSocks5UDPSession(addr, user, password string) (*socks5UDPSession, error) {
|
||||||
ctrl, err := net.DialTimeout("tcp", addr, 5*time.Second)
|
dialer := net.Dialer{Timeout: 5 * time.Second}
|
||||||
|
ctrl, err := dialer.DialContext(context.Background(), "tcp", addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("amneziawgnet: dial SOCKS5 control connection: %w", err)
|
return nil, fmt.Errorf("amneziawgnet: dial SOCKS5 control connection: %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user