Browse Source

Style: format code by gofumpt (#1022)

Loyalsoldier 4 years ago
parent
commit
6f8979d017
87 changed files with 251 additions and 272 deletions
  1. 1 3
      app/dispatcher/default.go
  2. 1 2
      app/dns/dns_test.go
  3. 1 3
      app/dns/dnscommon.go
  4. 14 6
      app/dns/dnscommon_test.go
  5. 1 3
      app/log/log_creator.go
  6. 1 0
      app/proxyman/inbound/worker.go
  7. 2 2
      app/router/balancing.go
  8. 1 3
      app/router/condition_geoip.go
  9. 3 2
      app/router/condition_geoip_test.go
  10. 3 2
      app/router/condition_test.go
  11. 1 0
      common/buf/buffer_test.go
  12. 2 4
      common/common.go
  13. 0 1
      common/crypto/auth.go
  14. 1 1
      common/crypto/chacha20_test.go
  15. 1 1
      common/crypto/internal/chacha_core.generated.go
  16. 1 1
      common/crypto/internal/chacha_core_gen.go
  17. 1 3
      common/crypto/io.go
  18. 1 1
      common/errors/errorgen/main.go
  19. 1 3
      common/log/log.go
  20. 2 2
      common/log/logger.go
  21. 5 3
      common/mux/client.go
  22. 45 57
      common/net/system.go
  23. 1 1
      common/platform/filesystem/file.go
  24. 1 2
      common/protocol/bittorrent/bittorrent.go
  25. 2 0
      common/protocol/tls/cert/cert_test.go
  26. 4 2
      common/protocol/tls/sniff.go
  27. 1 3
      common/retry/retry.go
  28. 1 3
      common/retry/retry_test.go
  29. 10 10
      common/strmatcher/ac_automaton_matcher.go
  30. 4 3
      common/strmatcher/matchers_test.go
  31. 5 2
      common/strmatcher/mph_matcher.go
  32. 1 3
      common/type.go
  33. 1 1
      common/type_test.go
  34. 1 3
      common/uuid/uuid.go
  35. 7 9
      infra/conf/blackhole.go
  36. 2 2
      infra/conf/dns_test.go
  37. 2 2
      infra/conf/geodata/geodata_test.go
  38. 2 2
      infra/conf/geodata/memconservative/decode_test.go
  39. 1 2
      infra/conf/geodata/standard/standard.go
  40. 1 0
      infra/conf/http.go
  41. 2 1
      infra/conf/json/reader_test.go
  42. 1 2
      infra/conf/mtproto.go
  43. 2 2
      infra/conf/rule/rule.go
  44. 1 1
      infra/conf/rule/rule_test.go
  45. 1 0
      infra/conf/socks.go
  46. 30 15
      infra/conf/v2ray_test.go
  47. 1 0
      infra/conf/vmess.go
  48. 1 2
      infra/control/cert.go
  49. 1 2
      infra/control/certchainhash.go
  50. 4 2
      main/confloader/confloader.go
  51. 1 1
      proxy/blackhole/blackhole_test.go
  52. 1 2
      proxy/dns/dns_test.go
  53. 1 1
      proxy/http/client.go
  54. 1 1
      proxy/http/server.go
  55. 5 7
      proxy/mtproto/auth.go
  56. 2 3
      proxy/mtproto/client.go
  57. 12 12
      proxy/mtproto/server.go
  58. 2 2
      proxy/shadowsocks/client.go
  59. 1 1
      proxy/shadowsocks/server.go
  60. 1 1
      proxy/socks/client.go
  61. 1 2
      proxy/socks/server.go
  62. 1 1
      proxy/trojan/client.go
  63. 1 1
      proxy/trojan/server.go
  64. 1 5
      proxy/vmess/aead/encrypt.go
  65. 4 4
      proxy/vmess/aead/encrypt_test.go
  66. 1 2
      proxy/vmess/encoding/auth.go
  67. 1 2
      proxy/vmess/encoding/commands.go
  68. 6 4
      proxy/vmess/inbound/inbound.go
  69. 1 1
      proxy/vmess/outbound/outbound.go
  70. 0 1
      testing/servers/tcp/tcp.go
  71. 1 3
      transport/internet/dialer.go
  72. 4 2
      transport/internet/domainsocket/config.go
  73. 1 2
      transport/internet/grpc/dial.go
  74. 1 3
      transport/internet/kcp/dialer.go
  75. 0 1
      transport/internet/quic/hub.go
  76. 4 2
      transport/internet/quic/quic.go
  77. 1 0
      transport/internet/sockopt_freebsd.go
  78. 0 1
      transport/internet/sockopt_windows.go
  79. 1 3
      transport/internet/system_dialer.go
  80. 1 3
      transport/internet/system_listener.go
  81. 2 3
      transport/internet/tcp_hub.go
  82. 1 3
      transport/internet/tls/config.go
  83. 1 3
      transport/internet/tls/tls.go
  84. 1 3
      transport/internet/websocket/connection.go
  85. 2 2
      transport/internet/websocket/hub.go
  86. 4 2
      transport/pipe/impl.go
  87. 2 2
      v2ray.go

+ 1 - 3
app/dispatcher/default.go

@@ -26,9 +26,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/transport/pipe"
 )
 
-var (
-	errSniffingTimeout = newError("timeout on sniffing")
-)
+var errSniffingTimeout = newError("timeout on sniffing")
 
 type cachedReader struct {
 	sync.Mutex

+ 1 - 2
app/dns/dns_test.go

@@ -22,8 +22,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/testing/servers/udp"
 )
 
-type staticHandler struct {
-}
+type staticHandler struct{}
 
 func (*staticHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
 	ans := new(dns.Msg)

+ 1 - 3
app/dns/dnscommon.go

@@ -56,9 +56,7 @@ func isNewer(baseRec *IPRecord, newRec *IPRecord) bool {
 	return baseRec.Expire.Before(newRec.Expire)
 }
 
-var (
-	errRecordNotFound = errors.New("record not found")
-)
+var errRecordNotFound = errors.New("record not found")
 
 type dnsRequest struct {
 	reqType dnsmessage.Type

+ 14 - 6
app/dns/dnscommon_test.go

@@ -52,20 +52,28 @@ func Test_parseResponse(t *testing.T) {
 		want    *IPRecord
 		wantErr bool
 	}{
-		{"empty",
+		{
+			"empty",
 			&IPRecord{0, []net.Address(nil), time.Time{}, dnsmessage.RCodeSuccess},
 			false,
 		},
-		{"error",
+		{
+			"error",
 			nil,
 			true,
 		},
-		{"a record",
-			&IPRecord{1, []net.Address{net.ParseAddress("8.8.8.8"), net.ParseAddress("8.8.4.4")},
-				time.Time{}, dnsmessage.RCodeSuccess},
+		{
+			"a record",
+			&IPRecord{
+				1,
+				[]net.Address{net.ParseAddress("8.8.8.8"), net.ParseAddress("8.8.4.4")},
+				time.Time{},
+				dnsmessage.RCodeSuccess,
+			},
 			false,
 		},
-		{"aaaa record",
+		{
+			"aaaa record",
 			&IPRecord{2, []net.Address{net.ParseAddress("2001::123:8888"), net.ParseAddress("2001::123:8844")}, time.Time{}, dnsmessage.RCodeSuccess},
 			false,
 		},

+ 1 - 3
app/log/log_creator.go

@@ -13,9 +13,7 @@ type HandlerCreatorOptions struct {
 
 type HandlerCreator func(LogType, HandlerCreatorOptions) (log.Handler, error)
 
-var (
-	handlerCreatorMap = make(map[LogType]HandlerCreator)
-)
+var handlerCreatorMap = make(map[LogType]HandlerCreator)
 
 func RegisterHandlerCreator(logType LogType, f HandlerCreator) error {
 	if f == nil {

+ 1 - 0
app/proxyman/inbound/worker.go

@@ -465,6 +465,7 @@ func (w *dsWorker) Proxy() proxy.Inbound {
 func (w *dsWorker) Port() net.Port {
 	return net.Port(0)
 }
+
 func (w *dsWorker) Start() error {
 	ctx := context.Background()
 	hub, err := internet.ListenUnix(ctx, w.address, w.stream, func(conn internet.Connection) {

+ 2 - 2
app/router/balancing.go

@@ -14,8 +14,7 @@ type BalancingStrategy interface {
 	PickOutbound([]string) string
 }
 
-type RandomStrategy struct {
-}
+type RandomStrategy struct{}
 
 func (s *RandomStrategy) PickOutbound(tags []string) string {
 	n := len(tags)
@@ -47,6 +46,7 @@ func (b *Balancer) PickOutbound() (string, error) {
 	}
 	return tag, nil
 }
+
 func (b *Balancer) InjectContext(ctx context.Context) {
 	if contextReceiver, ok := b.strategy.(extension.ContextReceiver); ok {
 		contextReceiver.InjectContext(ctx)

+ 1 - 3
app/router/condition_geoip.go

@@ -203,6 +203,4 @@ func (c *GeoIPMatcherContainer) Add(geoip *GeoIP) (*GeoIPMatcher, error) {
 	return m, nil
 }
 
-var (
-	globalGeoIPContainer GeoIPMatcherContainer
-)
+var globalGeoIPContainer GeoIPMatcherContainer

+ 3 - 2
app/router/condition_geoip_test.go

@@ -28,7 +28,7 @@ func init() {
 	os.Setenv("v2ray.location.asset", tempPath)
 
 	if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geoipBytes, err := common.FetchHTTPContent(geoipURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geoipPath, geoipBytes))
@@ -98,7 +98,8 @@ func TestGeoIPMatcher(t *testing.T) {
 		{
 			Input:  "192.0.1.0",
 			Output: false,
-		}, {
+		},
+		{
 			Input:  "0.1.0.0",
 			Output: true,
 		},

+ 3 - 2
app/router/condition_test.go

@@ -38,13 +38,13 @@ func init() {
 	os.Setenv("v2ray.location.asset", tempPath)
 
 	if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geoipBytes, err := common.FetchHTTPContent(geoipURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geoipPath, geoipBytes))
 	}
 	if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geositeBytes, err := common.FetchHTTPContent(geositeURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geositePath, geositeBytes))
@@ -369,6 +369,7 @@ func loadGeoSite(country string) ([]*router.Domain, error) {
 
 	return nil, errors.New("country not found: " + country)
 }
+
 func TestChinaSites(t *testing.T) {
 	domains, err := loadGeoSite("CN")
 	common.Must(err)

+ 1 - 0
common/buf/buffer_test.go

@@ -78,6 +78,7 @@ func TestBufferByte(t *testing.T) {
 		buffer.Release()
 	}
 }
+
 func TestBufferResize(t *testing.T) {
 	buffer := New()
 	defer buffer.Release()

+ 2 - 4
common/common.go

@@ -18,10 +18,8 @@ import (
 
 //go:generate go run github.com/v2fly/v2ray-core/v4/common/errors/errorgen
 
-var (
-	// ErrNoClue is for the situation that existing information is not enough to make a decision. For example, Router may return this error when there is no suitable route.
-	ErrNoClue = errors.New("not enough information for making a decision")
-)
+// ErrNoClue is for the situation that existing information is not enough to make a decision. For example, Router may return this error when there is no suitable route.
+var ErrNoClue = errors.New("not enough information for making a decision")
 
 // Must panics if err is not nil.
 func Must(err error) {

+ 0 - 1
common/crypto/auth.go

@@ -295,7 +295,6 @@ func (w *AuthenticationWriter) writeStream(mb buf.MultiBuffer) error {
 		mb = nb
 
 		eb, err := w.seal(rawBytes[:nBytes])
-
 		if err != nil {
 			buf.ReleaseMulti(mb2Write)
 			return err

+ 1 - 1
common/crypto/chacha20_test.go

@@ -18,7 +18,7 @@ func mustDecodeHex(s string) []byte {
 }
 
 func TestChaCha20Stream(t *testing.T) {
-	var cases = []struct {
+	cases := []struct {
 		key    []byte
 		iv     []byte
 		output []byte

+ 1 - 1
common/crypto/internal/chacha_core.generated.go

@@ -3,7 +3,7 @@ package internal
 import "encoding/binary"
 
 func ChaCha20Block(s *[16]uint32, out []byte, rounds int) {
-	var x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15 = s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9], s[10], s[11], s[12], s[13], s[14], s[15]
+	x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15 := s[0], s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9], s[10], s[11], s[12], s[13], s[14], s[15]
 	for i := 0; i < rounds; i += 2 {
 		var x uint32
 

+ 1 - 1
common/crypto/internal/chacha_core_gen.go

@@ -55,7 +55,7 @@ func ChaCha20Block(s *[16]uint32, out []byte, rounds int) {
 }
 
 func main() {
-	file, err := os.OpenFile("chacha_core.generated.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644)
+	file, err := os.OpenFile("chacha_core.generated.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0o644)
 	if err != nil {
 		log.Fatalf("Failed to generate chacha_core.go: %v", err)
 	}

+ 1 - 3
common/crypto/io.go

@@ -27,9 +27,7 @@ func (r *CryptionReader) Read(data []byte) (int, error) {
 	return nBytes, err
 }
 
-var (
-	_ buf.Writer = (*CryptionWriter)(nil)
-)
+var _ buf.Writer = (*CryptionWriter)(nil)
 
 type CryptionWriter struct {
 	stream    cipher.Stream

+ 1 - 1
common/errors/errorgen/main.go

@@ -17,7 +17,7 @@ func main() {
 		pkg = "core"
 	}
 
-	file, err := os.OpenFile("errors.generated.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644)
+	file, err := os.OpenFile("errors.generated.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0o644)
 	if err != nil {
 		fmt.Printf("Failed to generate errors.generated.go: %v", err)
 		os.Exit(1)

+ 1 - 3
common/log/log.go

@@ -32,9 +32,7 @@ func Record(msg Message) {
 	logHandler.Handle(msg)
 }
 
-var (
-	logHandler syncHandler
-)
+var logHandler syncHandler
 
 // RegisterHandler register a new handler as current log handler. Previous registered handler will be discarded.
 func RegisterHandler(handler Handler) {

+ 2 - 2
common/log/logger.go

@@ -130,13 +130,13 @@ func CreateStderrLogWriter() WriterCreator {
 
 // CreateFileLogWriter returns a LogWriterCreator that creates LogWriter for the given file.
 func CreateFileLogWriter(path string) (WriterCreator, error) {
-	file, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
+	file, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0o600)
 	if err != nil {
 		return nil, err
 	}
 	file.Close()
 	return func() Writer {
-		file, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0600)
+		file, err := os.OpenFile(path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0o600)
 		if err != nil {
 			return nil
 		}

+ 5 - 3
common/mux/client.go

@@ -143,6 +143,7 @@ func NewDialingWorkerFactory(ctx context.Context, proxy proxy.Outbound, dialer i
 		ctx:      ctx,
 	}
 }
+
 func (f *DialingWorkerFactory) Create() (*ClientWorker, error) {
 	opts := []pipe.Option{pipe.WithSizeLimit(64 * 1024)}
 	uplinkReader, upLinkWriter := pipe.New(opts...)
@@ -152,7 +153,6 @@ func (f *DialingWorkerFactory) Create() (*ClientWorker, error) {
 		Reader: downlinkReader,
 		Writer: upLinkWriter,
 	}, f.Strategy)
-
 	if err != nil {
 		return nil, err
 	}
@@ -185,8 +185,10 @@ type ClientWorker struct {
 	strategy       ClientStrategy
 }
 
-var muxCoolAddress = net.DomainAddress("v1.mux.cool")
-var muxCoolPort = net.Port(9527)
+var (
+	muxCoolAddress = net.DomainAddress("v1.mux.cool")
+	muxCoolPort    = net.Port(9527)
+)
 
 // NewClientWorker creates a new mux.Client.
 func NewClientWorker(stream transport.Link, s ClientStrategy) (*ClientWorker, error) {

+ 45 - 57
common/net/system.go

@@ -2,60 +2,48 @@ package net
 
 import "net"
 
-// DialTCP is an alias of net.DialTCP.
-var DialTCP = net.DialTCP
-var DialUDP = net.DialUDP
-var DialUnix = net.DialUnix
-var Dial = net.Dial
-
-type ListenConfig = net.ListenConfig
-
-var Listen = net.Listen
-var ListenTCP = net.ListenTCP
-var ListenUDP = net.ListenUDP
-var ListenUnix = net.ListenUnix
-
-var LookupIP = net.LookupIP
-
-var FileConn = net.FileConn
-
-// ParseIP is an alias of net.ParseIP
-var ParseIP = net.ParseIP
-
-var SplitHostPort = net.SplitHostPort
-
-var CIDRMask = net.CIDRMask
-
-type Addr = net.Addr
-type Conn = net.Conn
-type PacketConn = net.PacketConn
-
-type TCPAddr = net.TCPAddr
-type TCPConn = net.TCPConn
-
-type UDPAddr = net.UDPAddr
-type UDPConn = net.UDPConn
-
-type UnixAddr = net.UnixAddr
-type UnixConn = net.UnixConn
-
-// IP is an alias for net.IP.
-type IP = net.IP
-type IPMask = net.IPMask
-type IPNet = net.IPNet
-
-const IPv4len = net.IPv4len
-const IPv6len = net.IPv6len
-
-type Error = net.Error
-type AddrError = net.AddrError
-
-type Dialer = net.Dialer
-type Listener = net.Listener
-type TCPListener = net.TCPListener
-type UnixListener = net.UnixListener
-
-var ResolveUnixAddr = net.ResolveUnixAddr
-var ResolveUDPAddr = net.ResolveUDPAddr
-
-type Resolver = net.Resolver
+const (
+	IPv4len = net.IPv4len
+	IPv6len = net.IPv6len
+)
+
+var (
+	CIDRMask        = net.CIDRMask
+	Dial            = net.Dial
+	DialTCP         = net.DialTCP
+	DialUDP         = net.DialUDP
+	DialUnix        = net.DialUnix
+	FileConn        = net.FileConn
+	Listen          = net.Listen
+	ListenTCP       = net.ListenTCP
+	ListenUDP       = net.ListenUDP
+	ListenUnix      = net.ListenUnix
+	LookupIP        = net.LookupIP
+	ParseIP         = net.ParseIP
+	ResolveUDPAddr  = net.ResolveUDPAddr
+	ResolveUnixAddr = net.ResolveUnixAddr
+	SplitHostPort   = net.SplitHostPort
+)
+
+type (
+	Addr         = net.Addr
+	AddrError    = net.AddrError
+	Conn         = net.Conn
+	Dialer       = net.Dialer
+	Error        = net.Error
+	IP           = net.IP
+	IPMask       = net.IPMask
+	IPNet        = net.IPNet
+	ListenConfig = net.ListenConfig
+	Listener     = net.Listener
+	PacketConn   = net.PacketConn
+	Resolver     = net.Resolver
+	TCPAddr      = net.TCPAddr
+	TCPConn      = net.TCPConn
+	TCPListener  = net.TCPListener
+	UDPAddr      = net.UDPAddr
+	UDPConn      = net.UDPConn
+	UnixAddr     = net.UnixAddr
+	UnixConn     = net.UnixConn
+	UnixListener = net.UnixListener
+)

+ 1 - 1
common/platform/filesystem/file.go

@@ -55,7 +55,7 @@ func CopyFile(dst string, src string) error {
 	if err != nil {
 		return err
 	}
-	f, err := os.OpenFile(dst, os.O_CREATE|os.O_WRONLY, 0644)
+	f, err := os.OpenFile(dst, os.O_CREATE|os.O_WRONLY, 0o644)
 	if err != nil {
 		return err
 	}

+ 1 - 2
common/protocol/bittorrent/bittorrent.go

@@ -6,8 +6,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/common"
 )
 
-type SniffHeader struct {
-}
+type SniffHeader struct{}
 
 func (h *SniffHeader) Protocol() string {
 	return "bittorrent"

+ 2 - 0
common/protocol/tls/cert/cert_test.go

@@ -73,6 +73,7 @@ func printJSON(certificate *Certificate) {
 	os.Stdout.Write(content)
 	os.Stdout.WriteString("\n")
 }
+
 func printFile(certificate *Certificate, name string) error {
 	certPEM, keyPEM := certificate.ToPEM()
 	return task.Run(context.Background(), func() error {
@@ -81,6 +82,7 @@ func printFile(certificate *Certificate, name string) error {
 		return writeFile(keyPEM, name+"_key.pem")
 	})
 }
+
 func writeFile(content []byte, name string) error {
 	f, err := os.Create(name)
 	if err != nil {

+ 4 - 2
common/protocol/tls/sniff.go

@@ -20,8 +20,10 @@ func (h *SniffHeader) Domain() string {
 	return h.domain
 }
 
-var errNotTLS = errors.New("not TLS header")
-var errNotClientHello = errors.New("not client hello")
+var (
+	errNotTLS         = errors.New("not TLS header")
+	errNotClientHello = errors.New("not client hello")
+)
 
 func IsValidTLSVersion(major, minor byte) bool {
 	return major == 3

+ 1 - 3
common/retry/retry.go

@@ -6,9 +6,7 @@ import (
 	"time"
 )
 
-var (
-	ErrRetryFailed = newError("all retry attempts failed")
-)
+var ErrRetryFailed = newError("all retry attempts failed")
 
 // Strategy is a way to retry on a specific function.
 type Strategy interface {

+ 1 - 3
common/retry/retry_test.go

@@ -9,9 +9,7 @@ import (
 	. "github.com/v2fly/v2ray-core/v4/common/retry"
 )
 
-var (
-	errorTestOnly = errors.New("this is a fake error")
-)
+var errorTestOnly = errors.New("this is a fake error")
 
 func TestNoRetry(t *testing.T) {
 	startTime := time.Now().Unix()

+ 10 - 10
common/strmatcher/ac_automaton_matcher.go

@@ -122,7 +122,7 @@ var char2Index = []int{
 }
 
 func NewACAutomaton() *ACAutomaton {
-	var ac = new(ACAutomaton)
+	ac := new(ACAutomaton)
 	ac.trie = append(ac.trie, newNode())
 	ac.fail = append(ac.fail, 0)
 	ac.exists = append(ac.exists, MatchType{
@@ -133,9 +133,9 @@ func NewACAutomaton() *ACAutomaton {
 }
 
 func (ac *ACAutomaton) Add(domain string, t Type) {
-	var node = 0
+	node := 0
 	for i := len(domain) - 1; i >= 0; i-- {
-		var idx = char2Index[domain[i]]
+		idx := char2Index[domain[i]]
 		if ac.trie[node][idx].nextNode == 0 {
 			ac.count++
 			if len(ac.trie) < ac.count+1 {
@@ -163,7 +163,7 @@ func (ac *ACAutomaton) Add(domain string, t Type) {
 			matchType: Full,
 			exist:     true,
 		}
-		var idx = char2Index['.']
+		idx := char2Index['.']
 		if ac.trie[node][idx].nextNode == 0 {
 			ac.count++
 			if len(ac.trie) < ac.count+1 {
@@ -190,18 +190,18 @@ func (ac *ACAutomaton) Add(domain string, t Type) {
 }
 
 func (ac *ACAutomaton) Build() {
-	var queue = list.New()
+	queue := list.New()
 	for i := 0; i < validCharCount; i++ {
 		if ac.trie[0][i].nextNode != 0 {
 			queue.PushBack(ac.trie[0][i])
 		}
 	}
 	for {
-		var front = queue.Front()
+		front := queue.Front()
 		if front == nil {
 			break
 		} else {
-			var node = front.Value.(Edge).nextNode
+			node := front.Value.(Edge).nextNode
 			queue.Remove(front)
 			for i := 0; i < validCharCount; i++ {
 				if ac.trie[node][i].nextNode != 0 {
@@ -219,13 +219,13 @@ func (ac *ACAutomaton) Build() {
 }
 
 func (ac *ACAutomaton) Match(s string) bool {
-	var node = 0
-	var fullMatch = true
+	node := 0
+	fullMatch := true
 	// 1. the match string is all through trie edge. FULL MATCH or DOMAIN
 	// 2. the match string is through a fail edge. NOT FULL MATCH
 	// 2.1 Through a fail edge, but there exists a valid node. SUBSTR
 	for i := len(s) - 1; i >= 0; i-- {
-		var idx = char2Index[s[i]]
+		idx := char2Index[s[i]]
 		fullMatch = fullMatch && ac.trie[node][idx].edgeType
 		node = ac.trie[node][idx].nextNode
 		switch ac.exists[node].matchType {

+ 4 - 3
common/strmatcher/matchers_test.go

@@ -71,6 +71,7 @@ func TestMatcher(t *testing.T) {
 		}
 	}
 }
+
 func TestACAutomaton(t *testing.T) {
 	cases1 := []struct {
 		pattern string
@@ -122,7 +123,7 @@ func TestACAutomaton(t *testing.T) {
 		},
 	}
 	for _, test := range cases1 {
-		var ac = NewACAutomaton()
+		ac := NewACAutomaton()
 		ac.Add(test.pattern, test.mType)
 		ac.Build()
 		if m := ac.Match(test.input); m != test.output {
@@ -155,7 +156,7 @@ func TestACAutomaton(t *testing.T) {
 				mType:   Substr,
 			},
 		}
-		var ac = NewACAutomaton()
+		ac := NewACAutomaton()
 		for _, test := range cases2Input {
 			ac.Add(test.pattern, test.mType)
 		}
@@ -218,7 +219,7 @@ func TestACAutomaton(t *testing.T) {
 				mType:   Domain,
 			},
 		}
-		var ac = NewACAutomaton()
+		ac := NewACAutomaton()
 		for _, test := range cases3Input {
 			ac.Add(test.pattern, test.mType)
 		}

+ 5 - 2
common/strmatcher/mph_matcher.go

@@ -102,7 +102,7 @@ func (g *MphMatcherGroup) Build() {
 	g.level0Mask = len(g.level0) - 1
 	g.level1 = make([]uint32, nextPow2(keyLen))
 	g.level1Mask = len(g.level1) - 1
-	var sparseBuckets = make([][]int, len(g.level0))
+	sparseBuckets := make([][]int, len(g.level0))
 	var ruleIdx int
 	for rule, hash := range *g.ruleMap {
 		n := int(hash) & g.level0Mask
@@ -122,7 +122,7 @@ func (g *MphMatcherGroup) Build() {
 	occ := make([]bool, len(g.level1))
 	var tmpOcc []int
 	for _, bucket := range buckets {
-		var seed = uint32(0)
+		seed := uint32(0)
 		for {
 			findSeed := true
 			tmpOcc = tmpOcc[:0]
@@ -284,9 +284,11 @@ tail:
 	h ^= h >> 32
 	return uintptr(h)
 }
+
 func add(p unsafe.Pointer, x uintptr) unsafe.Pointer {
 	return unsafe.Pointer(uintptr(p) + x)
 }
+
 func readUnaligned32(p unsafe.Pointer) uint32 {
 	q := (*[4]byte)(p)
 	return uint32(q[0]) | uint32(q[1])<<8 | uint32(q[2])<<16 | uint32(q[3])<<24
@@ -295,6 +297,7 @@ func readUnaligned32(p unsafe.Pointer) uint32 {
 func rotl31(x uint64) uint64 {
 	return (x << 31) | (x >> (64 - 31))
 }
+
 func readUnaligned64(p unsafe.Pointer) uint64 {
 	q := (*[8]byte)(p)
 	return uint64(q[0]) | uint64(q[1])<<8 | uint64(q[2])<<16 | uint64(q[3])<<24 | uint64(q[4])<<32 | uint64(q[5])<<40 | uint64(q[6])<<48 | uint64(q[7])<<56

+ 1 - 3
common/type.go

@@ -8,9 +8,7 @@ import (
 // ConfigCreator is a function to create an object by a config.
 type ConfigCreator func(ctx context.Context, config interface{}) (interface{}, error)
 
-var (
-	typeCreatorRegistry = make(map[reflect.Type]ConfigCreator)
-)
+var typeCreatorRegistry = make(map[reflect.Type]ConfigCreator)
 
 // RegisterConfig registers a global config creator. The config can be nil but must have a type.
 func RegisterConfig(config interface{}, configCreator ConfigCreator) error {

+ 1 - 1
common/type_test.go

@@ -16,7 +16,7 @@ type YConfig struct {
 }
 
 func TestObjectCreation(t *testing.T) {
-	var f = func(ctx context.Context, t interface{}) (interface{}, error) {
+	f := func(ctx context.Context, t interface{}) (interface{}, error) {
 		return func() int {
 			return t.(*TConfig).value
 		}, nil

+ 1 - 3
common/uuid/uuid.go

@@ -9,9 +9,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/common/errors"
 )
 
-var (
-	byteGroups = []int{8, 4, 4, 4, 12}
-)
+var byteGroups = []int{8, 4, 4, 4, 12}
 
 type UUID [16]byte
 

+ 7 - 9
infra/conf/blackhole.go

@@ -42,12 +42,10 @@ func (v *BlackholeConfig) Build() (proto.Message, error) {
 	return config, nil
 }
 
-var (
-	configLoader = NewJSONConfigLoader(
-		ConfigCreatorCache{
-			"none": func() interface{} { return new(NoneResponse) },
-			"http": func() interface{} { return new(HTTPResponse) },
-		},
-		"type",
-		"")
-)
+var configLoader = NewJSONConfigLoader(
+	ConfigCreatorCache{
+		"none": func() interface{} { return new(NoneResponse) },
+		"http": func() interface{} { return new(HTTPResponse) },
+	},
+	"type",
+	"")

+ 2 - 2
infra/conf/dns_test.go

@@ -34,13 +34,13 @@ func init() {
 	os.Setenv("v2ray.location.asset", tempPath)
 
 	if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geoipBytes, err := common.FetchHTTPContent(geoipURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geoipPath, geoipBytes))
 	}
 	if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geositeBytes, err := common.FetchHTTPContent(geositeURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geositePath, geositeBytes))

+ 2 - 2
infra/conf/geodata/geodata_test.go

@@ -31,13 +31,13 @@ func init() {
 	os.Setenv("v2ray.location.asset", tempPath)
 
 	if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geoipBytes, err := common.FetchHTTPContent(geoipURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geoipPath, geoipBytes))
 	}
 	if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geositeBytes, err := common.FetchHTTPContent(geositeURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geositePath, geositeBytes))

+ 2 - 2
infra/conf/geodata/memconservative/decode_test.go

@@ -29,13 +29,13 @@ func init() {
 	os.Setenv("v2ray.location.asset", tempPath)
 
 	if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geoipBytes, err := common.FetchHTTPContent(geoipURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geoipPath, geoipBytes))
 	}
 	if _, err := os.Stat(geositePath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geositeBytes, err := common.FetchHTTPContent(geositeURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geositePath, geositeBytes))

+ 1 - 2
infra/conf/geodata/standard/standard.go

@@ -50,8 +50,7 @@ func loadSite(filename, list string) ([]*router.Domain, error) {
 	return nil, newError("list not found in ", filename, ": ", list)
 }
 
-type standardLoader struct {
-}
+type standardLoader struct{}
 
 func (d standardLoader) LoadSite(filename, list string) ([]*router.Domain, error) {
 	return loadSite(filename, list)

+ 1 - 0
infra/conf/http.go

@@ -52,6 +52,7 @@ type HTTPRemoteConfig struct {
 	Port    uint16             `json:"port"`
 	Users   []json.RawMessage  `json:"users"`
 }
+
 type HTTPClientConfig struct {
 	Servers []*HTTPRemoteConfig `json:"servers"`
 }

+ 2 - 1
infra/conf/json/reader_test.go

@@ -24,7 +24,8 @@ content 2`,
 			`
 content 
 
-content 2`},
+content 2`,
+		},
 		{`content`, `content`},
 		{" ", " "},
 		{`con/*abcd*/tent`, "content"},

+ 1 - 2
infra/conf/mtproto.go

@@ -60,8 +60,7 @@ func (c *MTProtoServerConfig) Build() (proto.Message, error) {
 	return config, nil
 }
 
-type MTProtoClientConfig struct {
-}
+type MTProtoClientConfig struct{}
 
 func (c *MTProtoClientConfig) Build() (proto.Message, error) {
 	config := new(mtproto.ClientConfig)

+ 2 - 2
infra/conf/rule/rule.go

@@ -30,7 +30,7 @@ func parseDomainRule(ctx context.Context, domain string) ([]*router.Domain, erro
 		return domains, nil
 	}
 
-	var isExtDatFile = 0
+	isExtDatFile := 0
 	{
 		const prefix = "ext:"
 		if strings.HasPrefix(domain, prefix) {
@@ -141,7 +141,7 @@ func toCidrList(ctx context.Context, ips cfgcommon.StringList) ([]*router.GeoIP,
 			continue
 		}
 
-		var isExtDatFile = 0
+		isExtDatFile := 0
 		{
 			const prefix = "ext:"
 			if strings.HasPrefix(ip, prefix) {

+ 1 - 1
infra/conf/rule/rule_test.go

@@ -29,7 +29,7 @@ func init() {
 	os.Setenv("v2ray.location.asset", tempPath)
 
 	if _, err := os.Stat(geoipPath); err != nil && errors.Is(err, fs.ErrNotExist) {
-		common.Must(os.MkdirAll(tempPath, 0755))
+		common.Must(os.MkdirAll(tempPath, 0o755))
 		geoipBytes, err := common.FetchHTTPContent(geoipURL)
 		common.Must(err)
 		common.Must(filesystem.WriteFile(geoipPath, geoipBytes))

+ 1 - 0
infra/conf/socks.go

@@ -71,6 +71,7 @@ type SocksRemoteConfig struct {
 	Port    uint16             `json:"port"`
 	Users   []json.RawMessage  `json:"users"`
 }
+
 type SocksClientConfig struct {
 	Servers []*SocksRemoteConfig `json:"servers"`
 }

+ 30 - 15
infra/conf/v2ray_test.go

@@ -380,7 +380,8 @@ func TestConfig_Override(t *testing.T) {
 		fn   string
 		want *Config
 	}{
-		{"combine/empty",
+		{
+			"combine/empty",
 			&Config{},
 			&Config{
 				LogConfig:    &LogConfig{},
@@ -404,40 +405,54 @@ func TestConfig_Override(t *testing.T) {
 				Reverse:      &ReverseConfig{},
 			},
 		},
-		{"combine/newattr",
+		{
+			"combine/newattr",
 			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "old"}}},
 			&Config{LogConfig: &LogConfig{}}, "",
-			&Config{LogConfig: &LogConfig{}, InboundConfigs: []InboundDetourConfig{{Tag: "old"}}}},
-		{"replace/inbounds",
+			&Config{LogConfig: &LogConfig{}, InboundConfigs: []InboundDetourConfig{{Tag: "old"}}},
+		},
+		{
+			"replace/inbounds",
 			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos0"}, {Protocol: "vmess", Tag: "pos1"}}},
 			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}}},
 			"",
-			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos0"}, {Tag: "pos1", Protocol: "kcp"}}}},
-		{"replace/inbounds-replaceall",
+			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos0"}, {Tag: "pos1", Protocol: "kcp"}}},
+		},
+		{
+			"replace/inbounds-replaceall",
 			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos0"}, {Protocol: "vmess", Tag: "pos1"}}},
 			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}, {Tag: "pos2", Protocol: "kcp"}}},
 			"",
-			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}, {Tag: "pos2", Protocol: "kcp"}}}},
-		{"replace/notag-append",
+			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}, {Tag: "pos2", Protocol: "kcp"}}},
+		},
+		{
+			"replace/notag-append",
 			&Config{InboundConfigs: []InboundDetourConfig{{}, {Protocol: "vmess"}}},
 			&Config{InboundConfigs: []InboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}}},
 			"",
-			&Config{InboundConfigs: []InboundDetourConfig{{}, {Protocol: "vmess"}, {Tag: "pos1", Protocol: "kcp"}}}},
-		{"replace/outbounds",
+			&Config{InboundConfigs: []InboundDetourConfig{{}, {Protocol: "vmess"}, {Tag: "pos1", Protocol: "kcp"}}},
+		},
+		{
+			"replace/outbounds",
 			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos0"}, {Protocol: "vmess", Tag: "pos1"}}},
 			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}}},
 			"",
-			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos0"}, {Tag: "pos1", Protocol: "kcp"}}}},
-		{"replace/outbounds-prepend",
+			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos0"}, {Tag: "pos1", Protocol: "kcp"}}},
+		},
+		{
+			"replace/outbounds-prepend",
 			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos0"}, {Protocol: "vmess", Tag: "pos1"}}},
 			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}, {Tag: "pos2", Protocol: "kcp"}}},
 			"config.json",
-			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}, {Tag: "pos2", Protocol: "kcp"}}}},
-		{"replace/outbounds-append",
+			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos1", Protocol: "kcp"}, {Tag: "pos2", Protocol: "kcp"}}},
+		},
+		{
+			"replace/outbounds-append",
 			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos0"}, {Protocol: "vmess", Tag: "pos1"}}},
 			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos2", Protocol: "kcp"}}},
 			"config_tail.json",
-			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos0"}, {Protocol: "vmess", Tag: "pos1"}, {Tag: "pos2", Protocol: "kcp"}}}},
+			&Config{OutboundConfigs: []OutboundDetourConfig{{Tag: "pos0"}, {Protocol: "vmess", Tag: "pos1"}, {Tag: "pos2", Protocol: "kcp"}}},
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {

+ 1 - 0
infra/conf/vmess.go

@@ -120,6 +120,7 @@ type VMessOutboundTarget struct {
 	Port    uint16             `json:"port"`
 	Users   []json.RawMessage  `json:"users"`
 }
+
 type VMessOutboundConfig struct {
 	Receivers []*VMessOutboundTarget `json:"vnext"`
 }

+ 1 - 2
infra/control/cert.go

@@ -33,8 +33,7 @@ type jsonCert struct {
 	Key         []string `json:"key"`
 }
 
-type CertificateCommand struct {
-}
+type CertificateCommand struct{}
 
 func (c *CertificateCommand) Name() string {
 	return "cert"

+ 1 - 2
infra/control/certchainhash.go

@@ -8,8 +8,7 @@ import (
 	v2tls "github.com/v2fly/v2ray-core/v4/transport/internet/tls"
 )
 
-type CertificateChainHashCommand struct {
-}
+type CertificateChainHashCommand struct{}
 
 func (c CertificateChainHashCommand) Name() string {
 	return "certChainHash"

+ 4 - 2
main/confloader/confloader.go

@@ -5,8 +5,10 @@ import (
 	"os"
 )
 
-type configFileLoader func(string) (io.Reader, error)
-type extconfigLoader func([]string, io.Reader) (io.Reader, error)
+type (
+	configFileLoader func(string) (io.Reader, error)
+	extconfigLoader  func([]string, io.Reader) (io.Reader, error)
+)
 
 var (
 	EffectiveConfigFileLoader configFileLoader

+ 1 - 1
proxy/blackhole/blackhole_test.go

@@ -20,7 +20,7 @@ func TestBlackHoleHTTPResponse(t *testing.T) {
 
 	reader, writer := pipe.New(pipe.WithoutSizeLimit())
 
-	var readerError = make(chan error)
+	readerError := make(chan error)
 	var mb buf.MultiBuffer
 	go func() {
 		b, e := reader.ReadMultiBuffer()

+ 1 - 2
proxy/dns/dns_test.go

@@ -24,8 +24,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/testing/servers/udp"
 )
 
-type staticHandler struct {
-}
+type staticHandler struct{}
 
 func (*staticHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
 	ans := new(dns.Msg)

+ 1 - 1
proxy/http/client.go

@@ -133,7 +133,7 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter
 		return buf.Copy(buf.NewReader(conn), link.Writer, buf.UpdateActivity(timer))
 	}
 
-	var responseDonePost = task.OnSuccess(responseFunc, task.Close(link.Writer))
+	responseDonePost := task.OnSuccess(responseFunc, task.Close(link.Writer))
 	if err := task.Run(ctx, requestFunc, responseDonePost); err != nil {
 		return newError("connection ends").Base(err)
 	}

+ 1 - 1
proxy/http/server.go

@@ -203,7 +203,7 @@ func (s *Server) handleConnect(ctx context.Context, _ *http.Request, reader *buf
 		return nil
 	}
 
-	var closeWriter = task.OnSuccess(requestDone, task.Close(link.Writer))
+	closeWriter := task.OnSuccess(requestDone, task.Close(link.Writer))
 	if err := task.Run(ctx, closeWriter, responseDone); err != nil {
 		common.Interrupt(link.Reader)
 		common.Interrupt(link.Writer)

+ 5 - 7
proxy/mtproto/auth.go

@@ -133,13 +133,11 @@ func Inverse(b []byte) []byte {
 	return b2
 }
 
-var (
-	authPool = sync.Pool{
-		New: func() interface{} {
-			return new(Authentication)
-		},
-	}
-)
+var authPool = sync.Pool{
+	New: func() interface{} {
+		return new(Authentication)
+	},
+}
 
 func getAuthenticationObject() *Authentication {
 	return authPool.Get().(*Authentication)

+ 2 - 3
proxy/mtproto/client.go

@@ -13,8 +13,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/transport/internet"
 )
 
-type Client struct {
-}
+type Client struct{}
 
 func NewClient(ctx context.Context, config *ClientConfig) (*Client, error) {
 	return &Client{}, nil
@@ -62,7 +61,7 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter
 		return buf.Copy(connReader, link.Writer)
 	}
 
-	var responseDoneAndCloseWriter = task.OnSuccess(response, task.Close(link.Writer))
+	responseDoneAndCloseWriter := task.OnSuccess(response, task.Close(link.Writer))
 	if err := task.Run(ctx, request, responseDoneAndCloseWriter); err != nil {
 		return newError("connection ends").Base(err)
 	}

+ 12 - 12
proxy/mtproto/server.go

@@ -21,15 +21,13 @@ import (
 	"github.com/v2fly/v2ray-core/v4/transport/internet"
 )
 
-var (
-	dcList = []net.Address{
-		net.ParseAddress("149.154.175.50"),
-		net.ParseAddress("149.154.167.51"),
-		net.ParseAddress("149.154.175.100"),
-		net.ParseAddress("149.154.167.91"),
-		net.ParseAddress("149.154.171.5"),
-	}
-)
+var dcList = []net.Address{
+	net.ParseAddress("149.154.175.50"),
+	net.ParseAddress("149.154.167.51"),
+	net.ParseAddress("149.154.175.100"),
+	net.ParseAddress("149.154.167.91"),
+	net.ParseAddress("149.154.171.5"),
+}
 
 type Server struct {
 	user    *protocol.User
@@ -65,8 +63,10 @@ func (s *Server) Network() []net.Network {
 	return []net.Network{net.Network_TCP}
 }
 
-var ctype1 = []byte{0xef, 0xef, 0xef, 0xef}
-var ctype2 = []byte{0xee, 0xee, 0xee, 0xee}
+var (
+	ctype1 = []byte{0xef, 0xef, 0xef, 0xef}
+	ctype2 = []byte{0xee, 0xee, 0xee, 0xee}
+)
 
 func isValidConnectionType(c [4]byte) bool {
 	if bytes.Equal(c[:], ctype1) {
@@ -145,7 +145,7 @@ func (s *Server) Process(ctx context.Context, network net.Network, conn internet
 		return buf.Copy(link.Reader, writer, buf.UpdateActivity(timer))
 	}
 
-	var responseDoneAndCloseWriter = task.OnSuccess(response, task.Close(link.Writer))
+	responseDoneAndCloseWriter := task.OnSuccess(response, task.Close(link.Writer))
 	if err := task.Run(ctx, request, responseDoneAndCloseWriter); err != nil {
 		common.Interrupt(link.Reader)
 		common.Interrupt(link.Writer)

+ 2 - 2
proxy/shadowsocks/client.go

@@ -127,7 +127,7 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter
 			return buf.Copy(responseReader, link.Writer, buf.UpdateActivity(timer))
 		}
 
-		var responseDoneAndCloseWriter = task.OnSuccess(responseDone, task.Close(link.Writer))
+		responseDoneAndCloseWriter := task.OnSuccess(responseDone, task.Close(link.Writer))
 		if err := task.Run(ctx, requestDone, responseDoneAndCloseWriter); err != nil {
 			return newError("connection ends").Base(err)
 		}
@@ -164,7 +164,7 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter
 			return nil
 		}
 
-		var responseDoneAndCloseWriter = task.OnSuccess(responseDone, task.Close(link.Writer))
+		responseDoneAndCloseWriter := task.OnSuccess(responseDone, task.Close(link.Writer))
 		if err := task.Run(ctx, requestDone, responseDoneAndCloseWriter); err != nil {
 			return newError("connection ends").Base(err)
 		}

+ 1 - 1
proxy/shadowsocks/server.go

@@ -222,7 +222,7 @@ func (s *Server) handleConnection(ctx context.Context, conn internet.Connection,
 		return nil
 	}
 
-	var requestDoneAndCloseWriter = task.OnSuccess(requestDone, task.Close(link.Writer))
+	requestDoneAndCloseWriter := task.OnSuccess(requestDone, task.Close(link.Writer))
 	if err := task.Run(ctx, requestDoneAndCloseWriter, responseDone); err != nil {
 		common.Interrupt(link.Reader)
 		common.Interrupt(link.Writer)

+ 1 - 1
proxy/socks/client.go

@@ -149,7 +149,7 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter
 		}
 	}
 
-	var responseDonePost = task.OnSuccess(responseFunc, task.Close(link.Writer))
+	responseDonePost := task.OnSuccess(responseFunc, task.Close(link.Writer))
 	if err := task.Run(ctx, requestFunc, responseDonePost); err != nil {
 		return newError("connection ends").Base(err)
 	}

+ 1 - 2
proxy/socks/server.go

@@ -177,7 +177,7 @@ func (s *Server) transport(ctx context.Context, reader io.Reader, writer io.Writ
 		return nil
 	}
 
-	var requestDonePost = task.OnSuccess(requestDone, task.Close(link.Writer))
+	requestDonePost := task.OnSuccess(requestDone, task.Close(link.Writer))
 	if err := task.Run(ctx, requestDonePost, responseDone); err != nil {
 		common.Interrupt(link.Reader)
 		common.Interrupt(link.Writer)
@@ -220,7 +220,6 @@ func (s *Server) handleUDPPayload(ctx context.Context, conn internet.Connection,
 
 		for _, payload := range mpayload {
 			request, err := DecodeUDPPacket(payload)
-
 			if err != nil {
 				newError("failed to parse UDP request").Base(err).WriteToLog(session.ExportIDToError(ctx))
 				payload.Release()

+ 1 - 1
proxy/trojan/client.go

@@ -131,7 +131,7 @@ func (c *Client) Process(ctx context.Context, link *transport.Link, dialer inter
 		return buf.Copy(reader, link.Writer, buf.UpdateActivity(timer))
 	}
 
-	var responseDoneAndCloseWriter = task.OnSuccess(getResponse, task.Close(link.Writer))
+	responseDoneAndCloseWriter := task.OnSuccess(getResponse, task.Close(link.Writer))
 	if err := task.Run(ctx, postRequest, responseDoneAndCloseWriter); err != nil {
 		return newError("connection ends").Base(err)
 	}

+ 1 - 1
proxy/trojan/server.go

@@ -275,7 +275,7 @@ func (s *Server) handleConnection(ctx context.Context, sessionPolicy policy.Sess
 		return nil
 	}
 
-	var requestDonePost = task.OnSuccess(requestDone, task.Close(link.Writer))
+	requestDonePost := task.OnSuccess(requestDone, task.Close(link.Writer))
 	if err := task.Run(ctx, requestDonePost, responseDone); err != nil {
 		common.Must(common.Interrupt(link.Reader))
 		common.Must(common.Interrupt(link.Writer))

+ 1 - 5
proxy/vmess/aead/encrypt.go

@@ -40,7 +40,6 @@ func SealVMessAEADHeader(key [16]byte, data []byte) []byte {
 		}
 
 		payloadHeaderAEAD, err := cipher.NewGCM(payloadHeaderLengthAEADAESBlock)
-
 		if err != nil {
 			panic(err.Error())
 		}
@@ -61,7 +60,6 @@ func SealVMessAEADHeader(key [16]byte, data []byte) []byte {
 		}
 
 		payloadHeaderAEAD, err := cipher.NewGCM(payloadHeaderAEADAESBlock)
-
 		if err != nil {
 			panic(err.Error())
 		}
@@ -69,7 +67,7 @@ func SealVMessAEADHeader(key [16]byte, data []byte) []byte {
 		payloadHeaderAEADEncrypted = payloadHeaderAEAD.Seal(nil, payloadHeaderAEADNonce, data, generatedAuthID[:])
 	}
 
-	var outputBuffer = bytes.NewBuffer(nil)
+	outputBuffer := bytes.NewBuffer(nil)
 
 	common.Must2(outputBuffer.Write(generatedAuthID[:]))               // 16
 	common.Must2(outputBuffer.Write(payloadHeaderLengthAEADEncrypted)) // 2+16
@@ -112,7 +110,6 @@ func OpenVMessAEADHeader(key [16]byte, authid [16]byte, data io.Reader) ([]byte,
 		}
 
 		payloadHeaderLengthAEAD, err := cipher.NewGCM(payloadHeaderAEADAESBlock)
-
 		if err != nil {
 			panic(err.Error())
 		}
@@ -154,7 +151,6 @@ func OpenVMessAEADHeader(key [16]byte, authid [16]byte, data io.Reader) ([]byte,
 		}
 
 		payloadHeaderAEAD, err := cipher.NewGCM(payloadHeaderAEADAESBlock)
-
 		if err != nil {
 			panic(err.Error())
 		}

+ 4 - 4
proxy/vmess/aead/encrypt_test.go

@@ -16,7 +16,7 @@ func TestOpenVMessAEADHeader(t *testing.T) {
 	copy(keyw[:], key)
 	sealed := SealVMessAEADHeader(keyw, TestHeader)
 
-	var AEADR = bytes.NewReader(sealed)
+	AEADR := bytes.NewReader(sealed)
 
 	var authid [16]byte
 
@@ -35,7 +35,7 @@ func TestOpenVMessAEADHeader2(t *testing.T) {
 	copy(keyw[:], key)
 	sealed := SealVMessAEADHeader(keyw, TestHeader)
 
-	var AEADR = bytes.NewReader(sealed)
+	AEADR := bytes.NewReader(sealed)
 
 	var authid [16]byte
 
@@ -57,7 +57,7 @@ func TestOpenVMessAEADHeader4(t *testing.T) {
 		var sealedm [16]byte
 		copy(sealedm[:], sealed)
 		sealed[i] ^= 0xff
-		var AEADR = bytes.NewReader(sealed)
+		AEADR := bytes.NewReader(sealed)
 
 		var authid [16]byte
 
@@ -85,7 +85,7 @@ func TestOpenVMessAEADHeader4Massive(t *testing.T) {
 			var sealedm [16]byte
 			copy(sealedm[:], sealed)
 			sealed[i] ^= 0xff
-			var AEADR = bytes.NewReader(sealed)
+			AEADR := bytes.NewReader(sealed)
 
 			var authid [16]byte
 

+ 1 - 2
proxy/vmess/encoding/auth.go

@@ -38,8 +38,7 @@ func (NoOpAuthenticator) Open(dst, nonce, ciphertext, additionalData []byte) ([]
 }
 
 // FnvAuthenticator is an AEAD based on Fnv hash.
-type FnvAuthenticator struct {
-}
+type FnvAuthenticator struct{}
 
 // NonceSize implements AEAD.NonceSize().
 func (*FnvAuthenticator) NonceSize() int {

+ 1 - 2
proxy/vmess/encoding/commands.go

@@ -77,8 +77,7 @@ type CommandFactory interface {
 	Unmarshal(data []byte) (interface{}, error)
 }
 
-type CommandSwitchAccountFactory struct {
-}
+type CommandSwitchAccountFactory struct{}
 
 func (f *CommandSwitchAccountFactory) Marshal(command interface{}, writer io.Writer) error {
 	cmd, ok := command.(*protocol.CommandSwitchAccount)

+ 6 - 4
proxy/vmess/inbound/inbound.go

@@ -306,7 +306,7 @@ func (h *Handler) Process(ctx context.Context, network net.Network, connection i
 		return transferResponse(timer, svrSession, request, response, link.Reader, writer)
 	}
 
-	var requestDonePost = task.OnSuccess(requestDone, task.Close(link.Writer))
+	requestDonePost := task.OnSuccess(requestDone, task.Close(link.Writer))
 	if err := task.Run(ctx, requestDonePost, responseDone); err != nil {
 		common.Interrupt(link.Reader)
 		common.Interrupt(link.Writer)
@@ -352,15 +352,17 @@ func (h *Handler) generateCommand(ctx context.Context, request *protocol.Request
 	return nil
 }
 
-var aeadForced = false
-var aeadForced2022 = false
+var (
+	aeadForced     = false
+	aeadForced2022 = false
+)
 
 func init() {
 	common.Must(common.RegisterConfig((*Config)(nil), func(ctx context.Context, config interface{}) (interface{}, error) {
 		return New(ctx, config.(*Config))
 	}))
 
-	var defaultFlagValue = "NOT_DEFINED_AT_ALL"
+	defaultFlagValue := "NOT_DEFINED_AT_ALL"
 
 	if time.Now().Year() >= 2022 {
 		defaultFlagValue = "true_by_default_2022"

+ 1 - 1
proxy/vmess/outbound/outbound.go

@@ -175,7 +175,7 @@ func (h *Handler) Process(ctx context.Context, link *transport.Link, dialer inte
 		return buf.Copy(bodyReader, output, buf.UpdateActivity(timer))
 	}
 
-	var responseDonePost = task.OnSuccess(responseDone, task.Close(output))
+	responseDonePost := task.OnSuccess(responseDone, task.Close(output))
 	if err := task.Run(ctx, requestDone, responseDonePost); err != nil {
 		return newError("connection ends").Base(err)
 	}

+ 0 - 1
testing/servers/tcp/tcp.go

@@ -97,7 +97,6 @@ func (server *Server) handleConnection(conn net.Conn) {
 			}
 		}
 	})
-
 	if err != nil {
 		fmt.Println("failed to transfer data: ", err.Error())
 	}

+ 1 - 3
transport/internet/dialer.go

@@ -20,9 +20,7 @@ type Dialer interface {
 // dialFunc is an interface to dial network connection to a specific destination.
 type dialFunc func(ctx context.Context, dest net.Destination, streamSettings *MemoryStreamConfig) (Connection, error)
 
-var (
-	transportDialerCache = make(map[string]dialFunc)
-)
+var transportDialerCache = make(map[string]dialFunc)
 
 // RegisterTransportDialer registers a Dialer with given name.
 func RegisterTransportDialer(protocol string, dialer dialFunc) error {

+ 4 - 2
transport/internet/domainsocket/config.go

@@ -8,8 +8,10 @@ import (
 	"github.com/v2fly/v2ray-core/v4/transport/internet"
 )
 
-const protocolName = "domainsocket"
-const sizeofSunPath = 108
+const (
+	protocolName  = "domainsocket"
+	sizeofSunPath = 108
+)
 
 func (c *Config) GetUnixAddr() (*net.UnixAddr, error) {
 	path := c.Path

+ 1 - 2
transport/internet/grpc/dial.go

@@ -44,14 +44,13 @@ func dialgRPC(ctx context.Context, dest net.Destination, streamSettings *interne
 	grpcSettings := streamSettings.ProtocolSettings.(*Config)
 
 	config := tls.ConfigFromStreamSettings(streamSettings)
-	var dialOption = grpc.WithInsecure()
+	dialOption := grpc.WithInsecure()
 
 	if config != nil {
 		dialOption = grpc.WithTransportCredentials(credentials.NewTLS(config.GetTLSConfig()))
 	}
 
 	conn, err := getGrpcClient(ctx, dest, dialOption)
-
 	if err != nil {
 		return nil, newError("Cannot dial grpc").Base(err)
 	}

+ 1 - 3
transport/internet/kcp/dialer.go

@@ -15,9 +15,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/transport/internet/tls"
 )
 
-var (
-	globalConv = uint32(dice.RollUint16())
-)
+var globalConv = uint32(dice.RollUint16())
 
 func fetchInput(_ context.Context, input io.Reader, reader PacketReader, conn *Connection) {
 	cache := make(chan *buf.Buffer, 1024)

+ 0 - 1
transport/internet/quic/hub.go

@@ -99,7 +99,6 @@ func Listen(ctx context.Context, address net.Address, port net.Port, streamSetti
 		IP:   address.IP(),
 		Port: int(port),
 	}, streamSettings.SocketSettings)
-
 	if err != nil {
 		return nil, err
 	}

+ 4 - 2
transport/internet/quic/quic.go

@@ -15,8 +15,10 @@ import (
 //
 //
 
-const protocolName = "quic"
-const internalDomain = "quic.internal.v2fly.org"
+const (
+	protocolName   = "quic"
+	internalDomain = "quic.internal.v2fly.org"
+)
 
 func init() {
 	common.Must(internet.RegisterProtocolConfigCreator(protocolName, func() interface{} {

+ 1 - 0
transport/internet/sockopt_freebsd.go

@@ -45,6 +45,7 @@ func ioctl(s uintptr, ioc int, b []byte) error {
 	}
 	return nil
 }
+
 func (nl *pfiocNatlook) rdPort() int {
 	return int(binary.BigEndian.Uint16((*[2]byte)(unsafe.Pointer(&nl.Rdport))[:]))
 }

+ 0 - 1
transport/internet/sockopt_windows.go

@@ -25,7 +25,6 @@ func applyOutboundSocketOptions(network string, address string, fd uintptr, conf
 		if err := setTFO(syscall.Handle(fd), config.Tfo); err != nil {
 			return err
 		}
-
 	}
 
 	return nil

+ 1 - 3
transport/internet/system_dialer.go

@@ -9,9 +9,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/common/session"
 )
 
-var (
-	effectiveSystemDialer SystemDialer = &DefaultSystemDialer{}
-)
+var effectiveSystemDialer SystemDialer = &DefaultSystemDialer{}
 
 type SystemDialer interface {
 	Dial(ctx context.Context, source net.Address, destination net.Destination, sockopt *SocketConfig) (net.Conn, error)

+ 1 - 3
transport/internet/system_listener.go

@@ -11,9 +11,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/common/session"
 )
 
-var (
-	effectiveListener = DefaultListener{}
-)
+var effectiveListener = DefaultListener{}
 
 type controller func(network, address string, fd uintptr) error
 

+ 2 - 3
transport/internet/tcp_hub.go

@@ -6,9 +6,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/common/net"
 )
 
-var (
-	transportListenerCache = make(map[string]ListenFunc)
-)
+var transportListenerCache = make(map[string]ListenFunc)
 
 func RegisterTransportListener(protocol string, listener ListenFunc) error {
 	if _, found := transportListenerCache[protocol]; found {
@@ -48,6 +46,7 @@ func ListenUnix(ctx context.Context, address net.Address, settings *MemoryStream
 	}
 	return listener, nil
 }
+
 func ListenTCP(ctx context.Context, address net.Address, port net.Port, settings *MemoryStreamConfig, handler ConnHandler) (Listener, error) {
 	if settings == nil {
 		s, err := ToMemoryStreamConfig(nil)

+ 1 - 3
transport/internet/tls/config.go

@@ -16,9 +16,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/transport/internet"
 )
 
-var (
-	globalSessionCache = tls.NewLRUClientSessionCache(128)
-)
+var globalSessionCache = tls.NewLRUClientSessionCache(128)
 
 const exp8357 = "experiment:8357"
 

+ 1 - 3
transport/internet/tls/tls.go

@@ -11,9 +11,7 @@ import (
 
 //go:generate go run github.com/v2fly/v2ray-core/v4/common/errors/errorgen
 
-var (
-	_ buf.Writer = (*Conn)(nil)
-)
+var _ buf.Writer = (*Conn)(nil)
 
 type Conn struct {
 	*tls.Conn

+ 1 - 3
transport/internet/websocket/connection.go

@@ -15,9 +15,7 @@ import (
 	"github.com/v2fly/v2ray-core/v4/common/serial"
 )
 
-var (
-	_ buf.Writer = (*connection)(nil)
-)
+var _ buf.Writer = (*connection)(nil)
 
 // connection is a wrapper for net.Conn over WebSocket connection.
 type connection struct {

+ 2 - 2
transport/internet/websocket/hub.go

@@ -142,8 +142,8 @@ func ListenWS(ctx context.Context, address net.Address, port net.Port, streamSet
 	}
 
 	l.listener = listener
-	var useEarlyData = false
-	var earlyDataHeaderName = ""
+	useEarlyData := false
+	earlyDataHeaderName := ""
 	if wsSettings.MaxEarlyData != 0 {
 		useEarlyData = true
 		earlyDataHeaderName = wsSettings.EarlyDataHeaderName

+ 4 - 2
transport/pipe/impl.go

@@ -40,8 +40,10 @@ type pipe struct {
 	state       state
 }
 
-var errBufferFull = errors.New("buffer full")
-var errSlowDown = errors.New("slow down")
+var (
+	errBufferFull = errors.New("buffer full")
+	errSlowDown   = errors.New("slow down")
+)
 
 func (p *pipe) getState(forRead bool) error {
 	switch p.state {

+ 2 - 2
v2ray.go

@@ -159,7 +159,7 @@ func RequireFeatures(ctx context.Context, callback interface{}) error {
 // The instance is not started at this point.
 // To ensure V2Ray instance works properly, the config must contain one Dispatcher, one InboundHandlerManager and one OutboundHandlerManager. Other features are optional.
 func New(config *Config) (*Instance, error) {
-	var server = &Instance{ctx: context.Background()}
+	server := &Instance{ctx: context.Background()}
 
 	done, err := initInstanceWithConfig(config, server)
 	if done {
@@ -170,7 +170,7 @@ func New(config *Config) (*Instance, error) {
 }
 
 func NewWithContext(ctx context.Context, config *Config) (*Instance, error) {
-	var server = &Instance{ctx: ctx}
+	server := &Instance{ctx: ctx}
 
 	done, err := initInstanceWithConfig(config, server)
 	if done {