mirror of https://github.com/v2ray/v2ray-core
Fix according to staticcheck result
staticcheck repo: https://github.com/dominikh/go-tools/tree/master/cmd/staticcheckpull/2714/head
parent
1fa89b32d4
commit
f12f76582f
|
@ -12,7 +12,6 @@ import (
|
||||||
"golang.org/x/net/dns/dnsmessage"
|
"golang.org/x/net/dns/dnsmessage"
|
||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
"v2ray.com/core/common/net"
|
"v2ray.com/core/common/net"
|
||||||
v2net "v2ray.com/core/common/net"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_parseResponse(t *testing.T) {
|
func Test_parseResponse(t *testing.T) {
|
||||||
|
@ -52,7 +51,7 @@ func Test_parseResponse(t *testing.T) {
|
||||||
wantErr bool
|
wantErr bool
|
||||||
}{
|
}{
|
||||||
{"empty",
|
{"empty",
|
||||||
&IPRecord{0, []v2net.Address(nil), time.Time{}, dnsmessage.RCodeSuccess},
|
&IPRecord{0, []net.Address(nil), time.Time{}, dnsmessage.RCodeSuccess},
|
||||||
false,
|
false,
|
||||||
},
|
},
|
||||||
{"error",
|
{"error",
|
||||||
|
@ -60,12 +59,12 @@ func Test_parseResponse(t *testing.T) {
|
||||||
true,
|
true,
|
||||||
},
|
},
|
||||||
{"a record",
|
{"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},
|
time.Time{}, dnsmessage.RCodeSuccess},
|
||||||
false,
|
false,
|
||||||
},
|
},
|
||||||
{"aaaa record",
|
{"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,
|
false,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@ func (p *IncrementalWorkerPicker) findAvailable() int {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *IncrementalWorkerPicker) pickInternal() (*ClientWorker, error, bool) {
|
func (p *IncrementalWorkerPicker) pickInternal() (*ClientWorker, bool, error) {
|
||||||
p.access.Lock()
|
p.access.Lock()
|
||||||
defer p.access.Unlock()
|
defer p.access.Unlock()
|
||||||
|
|
||||||
|
@ -93,14 +93,14 @@ func (p *IncrementalWorkerPicker) pickInternal() (*ClientWorker, error, bool) {
|
||||||
if n > 1 && idx != n-1 {
|
if n > 1 && idx != n-1 {
|
||||||
p.workers[n-1], p.workers[idx] = p.workers[idx], p.workers[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()
|
p.cleanup()
|
||||||
|
|
||||||
worker, err := p.Factory.Create()
|
worker, err := p.Factory.Create()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err, false
|
return nil, false, err
|
||||||
}
|
}
|
||||||
p.workers = append(p.workers, worker)
|
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) {
|
func (p *IncrementalWorkerPicker) PickAvailable() (*ClientWorker, error) {
|
||||||
worker, err, start := p.pickInternal()
|
worker, start, err := p.pickInternal()
|
||||||
if start {
|
if start {
|
||||||
common.Must(p.cleanupTask.Start())
|
common.Must(p.cleanupTask.Start())
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@ func generateRandomBytes(random []byte, connType [4]byte) {
|
||||||
continue
|
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
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"io"
|
"io"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -21,8 +22,7 @@ func SealVMessAEADHeader(key [16]byte, data []byte) []byte {
|
||||||
|
|
||||||
aeadPayloadLengthSerializeBuffer := bytes.NewBuffer(nil)
|
aeadPayloadLengthSerializeBuffer := bytes.NewBuffer(nil)
|
||||||
|
|
||||||
var headerPayloadDataLen uint16
|
headerPayloadDataLen := uint16(len(data))
|
||||||
headerPayloadDataLen = uint16(len(data))
|
|
||||||
|
|
||||||
common.Must(binary.Write(aeadPayloadLengthSerializeBuffer, binary.BigEndian, headerPayloadDataLen))
|
common.Must(binary.Write(aeadPayloadLengthSerializeBuffer, binary.BigEndian, headerPayloadDataLen))
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,10 @@ package aead
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"io"
|
"io"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestOpenVMessAEADHeader(t *testing.T) {
|
func TestOpenVMessAEADHeader(t *testing.T) {
|
||||||
|
|
|
@ -12,19 +12,18 @@ import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
"v2ray.com/core/common/dice"
|
|
||||||
vmessaead "v2ray.com/core/proxy/vmess/aead"
|
|
||||||
|
|
||||||
"golang.org/x/crypto/chacha20poly1305"
|
"golang.org/x/crypto/chacha20poly1305"
|
||||||
|
|
||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
"v2ray.com/core/common/bitmask"
|
"v2ray.com/core/common/bitmask"
|
||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/crypto"
|
"v2ray.com/core/common/crypto"
|
||||||
|
"v2ray.com/core/common/dice"
|
||||||
"v2ray.com/core/common/net"
|
"v2ray.com/core/common/net"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
"v2ray.com/core/common/task"
|
"v2ray.com/core/common/task"
|
||||||
"v2ray.com/core/proxy/vmess"
|
"v2ray.com/core/proxy/vmess"
|
||||||
|
vmessaead "v2ray.com/core/proxy/vmess/aead"
|
||||||
)
|
)
|
||||||
|
|
||||||
type sessionId struct {
|
type sessionId struct {
|
||||||
|
@ -170,7 +169,7 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
|
||||||
var fixedSizeAuthID [16]byte
|
var fixedSizeAuthID [16]byte
|
||||||
copy(fixedSizeAuthID[:], buffer.Bytes())
|
copy(fixedSizeAuthID[:], buffer.Bytes())
|
||||||
|
|
||||||
if foundAEAD == true {
|
if foundAEAD {
|
||||||
vmessAccount = user.Account.(*vmess.MemoryAccount)
|
vmessAccount = user.Account.(*vmess.MemoryAccount)
|
||||||
var fixedSizeCmdKey [16]byte
|
var fixedSizeCmdKey [16]byte
|
||||||
copy(fixedSizeCmdKey[:], vmessAccount.ID.CmdKey())
|
copy(fixedSizeCmdKey[:], vmessAccount.ID.CmdKey())
|
||||||
|
@ -405,8 +404,7 @@ func (s *ServerSession) EncodeResponseHeader(header *protocol.ResponseHeader, wr
|
||||||
|
|
||||||
aeadResponseHeaderLengthEncryptionBuffer := bytes.NewBuffer(nil)
|
aeadResponseHeaderLengthEncryptionBuffer := bytes.NewBuffer(nil)
|
||||||
|
|
||||||
var decryptedResponseHeaderLengthBinaryDeserializeBuffer uint16
|
decryptedResponseHeaderLengthBinaryDeserializeBuffer := uint16(aeadEncryptedHeaderBuffer.Len())
|
||||||
decryptedResponseHeaderLengthBinaryDeserializeBuffer = uint16(aeadEncryptedHeaderBuffer.Len())
|
|
||||||
|
|
||||||
common.Must(binary.Write(aeadResponseHeaderLengthEncryptionBuffer, binary.BigEndian, decryptedResponseHeaderLengthBinaryDeserializeBuffer))
|
common.Must(binary.Write(aeadResponseHeaderLengthEncryptionBuffer, binary.BigEndian, decryptedResponseHeaderLengthBinaryDeserializeBuffer))
|
||||||
|
|
||||||
|
|
|
@ -11,13 +11,13 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
"v2ray.com/core/common/dice"
|
|
||||||
"v2ray.com/core/proxy/vmess/aead"
|
|
||||||
|
|
||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
|
"v2ray.com/core/common/dice"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
"v2ray.com/core/common/serial"
|
"v2ray.com/core/common/serial"
|
||||||
"v2ray.com/core/common/task"
|
"v2ray.com/core/common/task"
|
||||||
|
"v2ray.com/core/proxy/vmess/aead"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -141,7 +141,7 @@ func (v *TimedUserValidator) Add(u *protocol.MemoryUser) error {
|
||||||
v.generateNewHashes(protocol.Timestamp(nowSec), uu)
|
v.generateNewHashes(protocol.Timestamp(nowSec), uu)
|
||||||
|
|
||||||
account := uu.user.Account.(*MemoryAccount)
|
account := uu.user.Account.(*MemoryAccount)
|
||||||
if v.behaviorFused == false {
|
if !v.behaviorFused {
|
||||||
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())
|
hashkdf.Write(account.ID.Bytes())
|
||||||
v.behaviorSeed = crc64.Update(v.behaviorSeed, crc64.MakeTable(crc64.ECMA), hashkdf.Sum(nil))
|
v.behaviorSeed = crc64.Update(v.behaviorSeed, crc64.MakeTable(crc64.ECMA), hashkdf.Sum(nil))
|
||||||
|
|
|
@ -126,7 +126,7 @@ func (h *HeaderReader) Read(reader io.Reader) (*buf.Buffer, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if hasThisUri == false {
|
if !hasThisUri {
|
||||||
return nil, ErrHeaderMisMatch
|
return nil, ErrHeaderMisMatch
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ func TestReaderWriter(t *testing.T) {
|
||||||
t.Error("unknown error ", err)
|
t.Error("unknown error ", err)
|
||||||
}
|
}
|
||||||
_ = buffer
|
_ = buffer
|
||||||
return
|
|
||||||
/*
|
/*
|
||||||
if buffer.String() != "efg" {
|
if buffer.String() != "efg" {
|
||||||
t.Error("buffer: ", buffer.String())
|
t.Error("buffer: ", buffer.String())
|
||||||
|
@ -256,7 +255,6 @@ func TestConnectionInvPath(t *testing.T) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestConnectionInvReq(t *testing.T) {
|
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") {
|
if !strings.HasPrefix(string(l), "HTTP/1.1 400 Bad Request") {
|
||||||
t.Error("Resp to non http conn", string(l))
|
t.Error("Resp to non http conn", string(l))
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,10 +121,7 @@ func (sw *SendingWindow) Flush(current uint32, rto uint32, maxInFlightSize uint3
|
||||||
segment.transmit++
|
segment.transmit++
|
||||||
sw.writer.Write(segment)
|
sw.writer.Write(segment)
|
||||||
inFlightSize++
|
inFlightSize++
|
||||||
if inFlightSize >= maxInFlightSize {
|
return inFlightSize < maxInFlightSize
|
||||||
return false
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
})
|
})
|
||||||
|
|
||||||
if sw.onPacketLoss != nil && inFlightSize > 0 && sw.totalInFlightSize != 0 {
|
if sw.onPacketLoss != nil && inFlightSize > 0 && sw.totalInFlightSize != 0 {
|
||||||
|
|
Loading…
Reference in New Issue