From 1fa89b32d42c85766901ad9a454f85505dbf9e7f Mon Sep 17 00:00:00 2001 From: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> Date: Sun, 30 Aug 2020 21:17:22 +0800 Subject: [PATCH 1/2] Format: run go fmt ./... --- app/proxyman/outbound/handler.go | 2 +- app/proxyman/outbound/handler_test.go | 2 +- .../github.com/cloudflare/sidh/sidh/api.go | 2 +- .../lucas-clemente/quic-go/buffer_pool.go | 2 +- external/github.com/marten-seemann/qtls/13.go | 2 +- proxy/shadowsocks/protocol.go | 19 +++++++++---------- proxy/vmess/validator.go | 2 +- testing/scenarios/vmess_test.go | 8 ++++---- transport/internet/domainsocket/listener.go | 2 +- 9 files changed, 20 insertions(+), 21 deletions(-) diff --git a/app/proxyman/outbound/handler.go b/app/proxyman/outbound/handler.go index 3ffe9ae2d..f899e6b8d 100644 --- a/app/proxyman/outbound/handler.go +++ b/app/proxyman/outbound/handler.go @@ -200,7 +200,7 @@ func (h *Handler) Dial(ctx context.Context, dest net.Destination) (internet.Conn return h.getStatCouterConnection(conn), err } -func (h *Handler) getStatCouterConnection(conn internet.Connection) (internet.Connection) { +func (h *Handler) getStatCouterConnection(conn internet.Connection) internet.Connection { if h.uplinkCounter != nil || h.downlinkCounter != nil { return &internet.StatCouterConnection{ Connection: conn, diff --git a/app/proxyman/outbound/handler_test.go b/app/proxyman/outbound/handler_test.go index c05183784..b3b6e0545 100644 --- a/app/proxyman/outbound/handler_test.go +++ b/app/proxyman/outbound/handler_test.go @@ -57,7 +57,7 @@ func TestOutboundWithStatCounter(t *testing.T) { serial.ToTypedMessage(&policy.Config{ System: &policy.SystemPolicy{ Stats: &policy.SystemPolicy_Stats{ - OutboundUplink: true, + OutboundUplink: true, OutboundDownlink: true, }, }, diff --git a/external/github.com/cloudflare/sidh/sidh/api.go b/external/github.com/cloudflare/sidh/sidh/api.go index 50dd13712..500dc5bfa 100644 --- a/external/github.com/cloudflare/sidh/sidh/api.go +++ b/external/github.com/cloudflare/sidh/sidh/api.go @@ -2,8 +2,8 @@ package sidh import ( "errors" - . "v2ray.com/core/external/github.com/cloudflare/sidh/internal/isogeny" "io" + . "v2ray.com/core/external/github.com/cloudflare/sidh/internal/isogeny" ) // I keep it bool in order to be able to apply logical NOT diff --git a/external/github.com/lucas-clemente/quic-go/buffer_pool.go b/external/github.com/lucas-clemente/quic-go/buffer_pool.go index 2966dbd70..e196fae04 100644 --- a/external/github.com/lucas-clemente/quic-go/buffer_pool.go +++ b/external/github.com/lucas-clemente/quic-go/buffer_pool.go @@ -3,8 +3,8 @@ package quic import ( "sync" - "v2ray.com/core/external/github.com/lucas-clemente/quic-go/internal/protocol" "v2ray.com/core/common/bytespool" + "v2ray.com/core/external/github.com/lucas-clemente/quic-go/internal/protocol" ) type packetBuffer struct { diff --git a/external/github.com/marten-seemann/qtls/13.go b/external/github.com/marten-seemann/qtls/13.go index 715dc6157..8a98e2de1 100644 --- a/external/github.com/marten-seemann/qtls/13.go +++ b/external/github.com/marten-seemann/qtls/13.go @@ -22,8 +22,8 @@ import ( "sync/atomic" "time" - "v2ray.com/core/external/github.com/cloudflare/sidh/sidh" "golang.org/x/crypto/curve25519" + "v2ray.com/core/external/github.com/cloudflare/sidh/sidh" ) // numSessionTickets is the number of different session tickets the diff --git a/proxy/shadowsocks/protocol.go b/proxy/shadowsocks/protocol.go index 03dad5b32..babcefdf3 100644 --- a/proxy/shadowsocks/protocol.go +++ b/proxy/shadowsocks/protocol.go @@ -38,7 +38,7 @@ var addrParser = protocol.NewAddressParser( func ReadTCPSession(user *protocol.MemoryUser, reader io.Reader) (*protocol.RequestHeader, buf.Reader, error) { account := user.Account.(*MemoryAccount) - hashkdf := hmac.New(func()hash.Hash{return sha256.New()}, []byte("SSBSKDF")) + hashkdf := hmac.New(func() hash.Hash { return sha256.New() }, []byte("SSBSKDF")) hashkdf.Write(account.Key) behaviorSeed := crc32.ChecksumIEEE(hashkdf.Sum(nil)) @@ -50,7 +50,6 @@ func ReadTCPSession(user *protocol.MemoryUser, reader io.Reader) (*protocol.Requ DrainSize := BaseDrainSize + 16 + 38 + RandDrainRolled readSizeRemain := DrainSize - buffer := buf.New() defer buffer.Release() @@ -59,7 +58,7 @@ func ReadTCPSession(user *protocol.MemoryUser, reader io.Reader) (*protocol.Requ if ivLen > 0 { if _, err := buffer.ReadFullFrom(reader, ivLen); err != nil { readSizeRemain -= int(buffer.Len()) - DrainConnN(reader,readSizeRemain) + DrainConnN(reader, readSizeRemain) return nil, nil, newError("failed to read IV").Base(err) } @@ -69,7 +68,7 @@ func ReadTCPSession(user *protocol.MemoryUser, reader io.Reader) (*protocol.Requ r, err := account.Cipher.NewDecryptionReader(account.Key, iv, reader) if err != nil { readSizeRemain -= int(buffer.Len()) - DrainConnN(reader,readSizeRemain) + DrainConnN(reader, readSizeRemain) return nil, nil, newError("failed to initialize decoding stream").Base(err).AtError() } br := &buf.BufferedReader{Reader: r} @@ -87,7 +86,7 @@ func ReadTCPSession(user *protocol.MemoryUser, reader io.Reader) (*protocol.Requ addr, port, err := addrParser.ReadAddressPort(buffer, br) if err != nil { readSizeRemain -= int(buffer.Len()) - DrainConnN(reader,readSizeRemain) + DrainConnN(reader, readSizeRemain) return nil, nil, newError("failed to read address").Base(err) } @@ -101,13 +100,13 @@ func ReadTCPSession(user *protocol.MemoryUser, reader io.Reader) (*protocol.Requ if request.Option.Has(RequestOptionOneTimeAuth) && account.OneTimeAuth == Account_Disabled { readSizeRemain -= int(buffer.Len()) - DrainConnN(reader,readSizeRemain) + DrainConnN(reader, readSizeRemain) return nil, nil, newError("rejecting connection with OTA enabled, while server disables OTA") } if !request.Option.Has(RequestOptionOneTimeAuth) && account.OneTimeAuth == Account_Enabled { readSizeRemain -= int(buffer.Len()) - DrainConnN(reader,readSizeRemain) + DrainConnN(reader, readSizeRemain) return nil, nil, newError("rejecting connection with OTA disabled, while server enables OTA") } } @@ -119,20 +118,20 @@ func ReadTCPSession(user *protocol.MemoryUser, reader io.Reader) (*protocol.Requ _, err := buffer.ReadFullFrom(br, AuthSize) if err != nil { readSizeRemain -= int(buffer.Len()) - DrainConnN(reader,readSizeRemain) + DrainConnN(reader, readSizeRemain) return nil, nil, newError("Failed to read OTA").Base(err) } if !bytes.Equal(actualAuth, buffer.BytesFrom(-AuthSize)) { readSizeRemain -= int(buffer.Len()) - DrainConnN(reader,readSizeRemain) + DrainConnN(reader, readSizeRemain) return nil, nil, newError("invalid OTA") } } if request.Address == nil { readSizeRemain -= int(buffer.Len()) - DrainConnN(reader,readSizeRemain) + DrainConnN(reader, readSizeRemain) return nil, nil, newError("invalid remote address.") } diff --git a/proxy/vmess/validator.go b/proxy/vmess/validator.go index b63a7d7ea..abcdc630c 100644 --- a/proxy/vmess/validator.go +++ b/proxy/vmess/validator.go @@ -142,7 +142,7 @@ func (v *TimedUserValidator) Add(u *protocol.MemoryUser) error { account := uu.user.Account.(*MemoryAccount) if v.behaviorFused == false { - hashkdf := hmac.New(func()hash.Hash{return sha256.New()}, []byte("VMESSBSKDF")) + hashkdf := hmac.New(func() hash.Hash { return sha256.New() }, []byte("VMESSBSKDF")) hashkdf.Write(account.ID.Bytes()) v.behaviorSeed = crc64.Update(v.behaviorSeed, crc64.MakeTable(crc64.ECMA), hashkdf.Sum(nil)) } diff --git a/testing/scenarios/vmess_test.go b/testing/scenarios/vmess_test.go index 813121393..5f90cca7b 100644 --- a/testing/scenarios/vmess_test.go +++ b/testing/scenarios/vmess_test.go @@ -928,8 +928,8 @@ func TestVMessKCPLarge(t *testing.T) { t.Error(err) } - defer func(){ - <-time.After(5*time.Second) + defer func() { + <-time.After(5 * time.Second) CloseAllServers(servers) }() } @@ -1178,8 +1178,8 @@ func TestVMessGCMMuxUDP(t *testing.T) { time.Sleep(time.Second) } - defer func(){ - <-time.After(5*time.Second) + defer func() { + <-time.After(5 * time.Second) CloseAllServers(servers) }() } diff --git a/transport/internet/domainsocket/listener.go b/transport/internet/domainsocket/listener.go index 587fecd9e..aba951d0a 100644 --- a/transport/internet/domainsocket/listener.go +++ b/transport/internet/domainsocket/listener.go @@ -11,7 +11,7 @@ import ( "strings" "golang.org/x/sys/unix" - + "v2ray.com/core/common" "v2ray.com/core/common/net" "v2ray.com/core/transport/internet" From f12f76582f6b49ad5a96fcbc747a8d03cc83361d Mon Sep 17 00:00:00 2001 From: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> Date: Sun, 30 Aug 2020 22:58:00 +0800 Subject: [PATCH 2/2] Fix according to staticcheck result staticcheck repo: https://github.com/dominikh/go-tools/tree/master/cmd/staticcheck --- app/dns/dnscommon_test.go | 7 +++---- common/mux/client.go | 10 +++++----- proxy/mtproto/auth.go | 2 +- proxy/vmess/aead/encrypt.go | 4 ++-- proxy/vmess/aead/encrypt_test.go | 3 ++- proxy/vmess/encoding/server.go | 10 ++++------ proxy/vmess/validator.go | 6 +++--- transport/internet/headers/http/http.go | 2 +- transport/internet/headers/http/http_test.go | 3 --- transport/internet/kcp/sending.go | 5 +---- 10 files changed, 22 insertions(+), 30 deletions(-) diff --git a/app/dns/dnscommon_test.go b/app/dns/dnscommon_test.go index d6f43c65d..7d81190af 100644 --- a/app/dns/dnscommon_test.go +++ b/app/dns/dnscommon_test.go @@ -12,7 +12,6 @@ import ( "golang.org/x/net/dns/dnsmessage" "v2ray.com/core/common" "v2ray.com/core/common/net" - v2net "v2ray.com/core/common/net" ) func Test_parseResponse(t *testing.T) { @@ -52,7 +51,7 @@ func Test_parseResponse(t *testing.T) { wantErr bool }{ {"empty", - &IPRecord{0, []v2net.Address(nil), time.Time{}, dnsmessage.RCodeSuccess}, + &IPRecord{0, []net.Address(nil), time.Time{}, dnsmessage.RCodeSuccess}, false, }, {"error", @@ -60,12 +59,12 @@ func Test_parseResponse(t *testing.T) { true, }, {"a record", - &IPRecord{1, []v2net.Address{v2net.ParseAddress("8.8.8.8"), v2net.ParseAddress("8.8.4.4")}, + &IPRecord{1, []net.Address{net.ParseAddress("8.8.8.8"), net.ParseAddress("8.8.4.4")}, time.Time{}, dnsmessage.RCodeSuccess}, false, }, {"aaaa record", - &IPRecord{2, []v2net.Address{v2net.ParseAddress("2001::123:8888"), v2net.ParseAddress("2001::123:8844")}, time.Time{}, dnsmessage.RCodeSuccess}, + &IPRecord{2, []net.Address{net.ParseAddress("2001::123:8888"), net.ParseAddress("2001::123:8844")}, time.Time{}, dnsmessage.RCodeSuccess}, false, }, } diff --git a/common/mux/client.go b/common/mux/client.go index ae9fe1b56..9e651bbe5 100644 --- a/common/mux/client.go +++ b/common/mux/client.go @@ -83,7 +83,7 @@ func (p *IncrementalWorkerPicker) findAvailable() int { return -1 } -func (p *IncrementalWorkerPicker) pickInternal() (*ClientWorker, error, bool) { +func (p *IncrementalWorkerPicker) pickInternal() (*ClientWorker, bool, error) { p.access.Lock() defer p.access.Unlock() @@ -93,14 +93,14 @@ func (p *IncrementalWorkerPicker) pickInternal() (*ClientWorker, error, bool) { if n > 1 && idx != n-1 { p.workers[n-1], p.workers[idx] = p.workers[idx], p.workers[n-1] } - return p.workers[idx], nil, false + return p.workers[idx], false, nil } p.cleanup() worker, err := p.Factory.Create() if err != nil { - return nil, err, false + return nil, false, err } p.workers = append(p.workers, worker) @@ -111,11 +111,11 @@ func (p *IncrementalWorkerPicker) pickInternal() (*ClientWorker, error, bool) { } } - return worker, nil, true + return worker, true, nil } func (p *IncrementalWorkerPicker) PickAvailable() (*ClientWorker, error) { - worker, err, start := p.pickInternal() + worker, start, err := p.pickInternal() if start { common.Must(p.cleanupTask.Start()) } diff --git a/proxy/mtproto/auth.go b/proxy/mtproto/auth.go index b0c53998a..2c025ea7e 100644 --- a/proxy/mtproto/auth.go +++ b/proxy/mtproto/auth.go @@ -83,7 +83,7 @@ func generateRandomBytes(random []byte, connType [4]byte) { continue } - if 0x00000000 == (uint32(random[7])<<24)|(uint32(random[6])<<16)|(uint32(random[5])<<8)|uint32(random[4]) { + if (uint32(random[7])<<24)|(uint32(random[6])<<16)|(uint32(random[5])<<8)|uint32(random[4]) == 0x00000000 { continue } diff --git a/proxy/vmess/aead/encrypt.go b/proxy/vmess/aead/encrypt.go index 21bd9467a..d2d0b1dea 100644 --- a/proxy/vmess/aead/encrypt.go +++ b/proxy/vmess/aead/encrypt.go @@ -8,6 +8,7 @@ import ( "encoding/binary" "io" "time" + "v2ray.com/core/common" ) @@ -21,8 +22,7 @@ func SealVMessAEADHeader(key [16]byte, data []byte) []byte { aeadPayloadLengthSerializeBuffer := bytes.NewBuffer(nil) - var headerPayloadDataLen uint16 - headerPayloadDataLen = uint16(len(data)) + headerPayloadDataLen := uint16(len(data)) common.Must(binary.Write(aeadPayloadLengthSerializeBuffer, binary.BigEndian, headerPayloadDataLen)) diff --git a/proxy/vmess/aead/encrypt_test.go b/proxy/vmess/aead/encrypt_test.go index 70e9a5403..9e5f7af94 100644 --- a/proxy/vmess/aead/encrypt_test.go +++ b/proxy/vmess/aead/encrypt_test.go @@ -3,9 +3,10 @@ package aead import ( "bytes" "fmt" - "github.com/stretchr/testify/assert" "io" "testing" + + "github.com/stretchr/testify/assert" ) func TestOpenVMessAEADHeader(t *testing.T) { diff --git a/proxy/vmess/encoding/server.go b/proxy/vmess/encoding/server.go index c71c8b338..11146cd64 100644 --- a/proxy/vmess/encoding/server.go +++ b/proxy/vmess/encoding/server.go @@ -12,19 +12,18 @@ import ( "io/ioutil" "sync" "time" - "v2ray.com/core/common/dice" - vmessaead "v2ray.com/core/proxy/vmess/aead" "golang.org/x/crypto/chacha20poly1305" - "v2ray.com/core/common" "v2ray.com/core/common/bitmask" "v2ray.com/core/common/buf" "v2ray.com/core/common/crypto" + "v2ray.com/core/common/dice" "v2ray.com/core/common/net" "v2ray.com/core/common/protocol" "v2ray.com/core/common/task" "v2ray.com/core/proxy/vmess" + vmessaead "v2ray.com/core/proxy/vmess/aead" ) type sessionId struct { @@ -170,7 +169,7 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request var fixedSizeAuthID [16]byte copy(fixedSizeAuthID[:], buffer.Bytes()) - if foundAEAD == true { + if foundAEAD { vmessAccount = user.Account.(*vmess.MemoryAccount) var fixedSizeCmdKey [16]byte copy(fixedSizeCmdKey[:], vmessAccount.ID.CmdKey()) @@ -405,8 +404,7 @@ func (s *ServerSession) EncodeResponseHeader(header *protocol.ResponseHeader, wr aeadResponseHeaderLengthEncryptionBuffer := bytes.NewBuffer(nil) - var decryptedResponseHeaderLengthBinaryDeserializeBuffer uint16 - decryptedResponseHeaderLengthBinaryDeserializeBuffer = uint16(aeadEncryptedHeaderBuffer.Len()) + decryptedResponseHeaderLengthBinaryDeserializeBuffer := uint16(aeadEncryptedHeaderBuffer.Len()) common.Must(binary.Write(aeadResponseHeaderLengthEncryptionBuffer, binary.BigEndian, decryptedResponseHeaderLengthBinaryDeserializeBuffer)) diff --git a/proxy/vmess/validator.go b/proxy/vmess/validator.go index abcdc630c..e308255bf 100644 --- a/proxy/vmess/validator.go +++ b/proxy/vmess/validator.go @@ -11,13 +11,13 @@ import ( "sync" "sync/atomic" "time" - "v2ray.com/core/common/dice" - "v2ray.com/core/proxy/vmess/aead" "v2ray.com/core/common" + "v2ray.com/core/common/dice" "v2ray.com/core/common/protocol" "v2ray.com/core/common/serial" "v2ray.com/core/common/task" + "v2ray.com/core/proxy/vmess/aead" ) const ( @@ -141,7 +141,7 @@ func (v *TimedUserValidator) Add(u *protocol.MemoryUser) error { v.generateNewHashes(protocol.Timestamp(nowSec), uu) account := uu.user.Account.(*MemoryAccount) - if v.behaviorFused == false { + if !v.behaviorFused { hashkdf := hmac.New(func() hash.Hash { return sha256.New() }, []byte("VMESSBSKDF")) hashkdf.Write(account.ID.Bytes()) v.behaviorSeed = crc64.Update(v.behaviorSeed, crc64.MakeTable(crc64.ECMA), hashkdf.Sum(nil)) diff --git a/transport/internet/headers/http/http.go b/transport/internet/headers/http/http.go index 6f65e9753..5b940cb80 100644 --- a/transport/internet/headers/http/http.go +++ b/transport/internet/headers/http/http.go @@ -126,7 +126,7 @@ func (h *HeaderReader) Read(reader io.Reader) (*buf.Buffer, error) { } } - if hasThisUri == false { + if !hasThisUri { return nil, ErrHeaderMisMatch } diff --git a/transport/internet/headers/http/http_test.go b/transport/internet/headers/http/http_test.go index 28f2d9ae4..54fcaf664 100644 --- a/transport/internet/headers/http/http_test.go +++ b/transport/internet/headers/http/http_test.go @@ -34,7 +34,6 @@ func TestReaderWriter(t *testing.T) { t.Error("unknown error ", err) } _ = buffer - return /* if buffer.String() != "efg" { t.Error("buffer: ", buffer.String()) @@ -256,7 +255,6 @@ func TestConnectionInvPath(t *testing.T) { break } } - return } func TestConnectionInvReq(t *testing.T) { @@ -315,5 +313,4 @@ func TestConnectionInvReq(t *testing.T) { if !strings.HasPrefix(string(l), "HTTP/1.1 400 Bad Request") { t.Error("Resp to non http conn", string(l)) } - return } diff --git a/transport/internet/kcp/sending.go b/transport/internet/kcp/sending.go index 38b120113..c8852ef7e 100644 --- a/transport/internet/kcp/sending.go +++ b/transport/internet/kcp/sending.go @@ -121,10 +121,7 @@ func (sw *SendingWindow) Flush(current uint32, rto uint32, maxInFlightSize uint3 segment.transmit++ sw.writer.Write(segment) inFlightSize++ - if inFlightSize >= maxInFlightSize { - return false - } - return true + return inFlightSize < maxInFlightSize }) if sw.onPacketLoss != nil && inFlightSize > 0 && sw.totalInFlightSize != 0 {