mirror of https://github.com/v2ray/v2ray-core
migrate int to int32
parent
4de3f1adc1
commit
08dab81eb2
|
@ -89,7 +89,7 @@ func (r *StreamReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
|
|||
r.leftOver = int32(size)
|
||||
}
|
||||
|
||||
mb, err := r.reader.ReadAtMost(int(r.leftOver))
|
||||
r.leftOver -= int32(mb.Len())
|
||||
mb, err := r.reader.ReadAtMost(r.leftOver)
|
||||
r.leftOver -= mb.Len()
|
||||
return mb, err
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@ func (w *Writer) writeData(mb buf.MultiBuffer) error {
|
|||
return err
|
||||
}
|
||||
|
||||
mb2 := buf.NewMultiBufferCap(len(mb) + 1)
|
||||
mb2 := buf.NewMultiBufferCap(int32(len(mb)) + 1)
|
||||
mb2.Append(frame)
|
||||
mb2.AppendMulti(mb)
|
||||
return w.writer.WriteMultiBuffer(mb2)
|
||||
|
|
|
@ -56,13 +56,13 @@ func (b *Buffer) AppendSupplier(writer Supplier) error {
|
|||
}
|
||||
|
||||
// Byte returns the bytes at index.
|
||||
func (b *Buffer) Byte(index int) byte {
|
||||
return b.v[b.start+int32(index)]
|
||||
func (b *Buffer) Byte(index int32) byte {
|
||||
return b.v[b.start+index]
|
||||
}
|
||||
|
||||
// SetByte sets the byte value at index.
|
||||
func (b *Buffer) SetByte(index int, value byte) {
|
||||
b.v[b.start+int32(index)] = value
|
||||
func (b *Buffer) SetByte(index int32, value byte) {
|
||||
b.v[b.start+index] = value
|
||||
}
|
||||
|
||||
// Bytes returns the content bytes of this Buffer.
|
||||
|
@ -79,34 +79,34 @@ func (b *Buffer) Reset(writer Supplier) error {
|
|||
}
|
||||
|
||||
// BytesRange returns a slice of this buffer with given from and to boundary.
|
||||
func (b *Buffer) BytesRange(from, to int) []byte {
|
||||
func (b *Buffer) BytesRange(from, to int32) []byte {
|
||||
if from < 0 {
|
||||
from += b.Len()
|
||||
}
|
||||
if to < 0 {
|
||||
to += b.Len()
|
||||
}
|
||||
return b.v[b.start+int32(from) : b.start+int32(to)]
|
||||
return b.v[b.start+from : b.start+to]
|
||||
}
|
||||
|
||||
// BytesFrom returns a slice of this Buffer starting from the given position.
|
||||
func (b *Buffer) BytesFrom(from int) []byte {
|
||||
func (b *Buffer) BytesFrom(from int32) []byte {
|
||||
if from < 0 {
|
||||
from += b.Len()
|
||||
}
|
||||
return b.v[b.start+int32(from) : b.end]
|
||||
return b.v[b.start+from : b.end]
|
||||
}
|
||||
|
||||
// BytesTo returns a slice of this Buffer from start to the given position.
|
||||
func (b *Buffer) BytesTo(to int) []byte {
|
||||
func (b *Buffer) BytesTo(to int32) []byte {
|
||||
if to < 0 {
|
||||
to += b.Len()
|
||||
}
|
||||
return b.v[b.start : b.start+int32(to)]
|
||||
return b.v[b.start : b.start+to]
|
||||
}
|
||||
|
||||
// Slice cuts the buffer at the given position.
|
||||
func (b *Buffer) Slice(from, to int) {
|
||||
func (b *Buffer) Slice(from, to int32) {
|
||||
if from < 0 {
|
||||
from += b.Len()
|
||||
}
|
||||
|
@ -116,24 +116,24 @@ func (b *Buffer) Slice(from, to int) {
|
|||
if to < from {
|
||||
panic("Invalid slice")
|
||||
}
|
||||
b.end = b.start + int32(to)
|
||||
b.start += int32(from)
|
||||
b.end = b.start + to
|
||||
b.start += from
|
||||
}
|
||||
|
||||
// SliceFrom cuts the buffer at the given position.
|
||||
func (b *Buffer) SliceFrom(from int) {
|
||||
func (b *Buffer) SliceFrom(from int32) {
|
||||
if from < 0 {
|
||||
from += b.Len()
|
||||
}
|
||||
b.start += int32(from)
|
||||
b.start += from
|
||||
}
|
||||
|
||||
// Len returns the length of the buffer content.
|
||||
func (b *Buffer) Len() int {
|
||||
func (b *Buffer) Len() int32 {
|
||||
if b == nil {
|
||||
return 0
|
||||
}
|
||||
return int(b.end - b.start)
|
||||
return b.end - b.start
|
||||
}
|
||||
|
||||
// IsEmpty returns true if the buffer is empty.
|
||||
|
@ -159,7 +159,7 @@ func (b *Buffer) Read(data []byte) (int, error) {
|
|||
return 0, io.EOF
|
||||
}
|
||||
nBytes := copy(data, b.v[b.start:b.end])
|
||||
if nBytes == b.Len() {
|
||||
if int32(nBytes) == b.Len() {
|
||||
b.Clear()
|
||||
} else {
|
||||
b.start += int32(nBytes)
|
||||
|
|
|
@ -16,10 +16,10 @@ func TestBufferClear(t *testing.T) {
|
|||
|
||||
payload := "Bytes"
|
||||
buffer.Append([]byte(payload))
|
||||
assert(buffer.Len(), Equals, len(payload))
|
||||
assert(buffer.Len(), Equals, int32(len(payload)))
|
||||
|
||||
buffer.Clear()
|
||||
assert(buffer.Len(), Equals, 0)
|
||||
assert(buffer.Len(), Equals, int32(0))
|
||||
}
|
||||
|
||||
func TestBufferIsEmpty(t *testing.T) {
|
||||
|
|
|
@ -66,7 +66,7 @@ func ReadAllToBytes(reader io.Reader) ([]byte, error) {
|
|||
type MultiBuffer []*Buffer
|
||||
|
||||
// NewMultiBufferCap creates a new MultiBuffer instance.
|
||||
func NewMultiBufferCap(capacity int) MultiBuffer {
|
||||
func NewMultiBufferCap(capacity int32) MultiBuffer {
|
||||
return MultiBuffer(make([]*Buffer, 0, capacity))
|
||||
}
|
||||
|
||||
|
@ -93,7 +93,7 @@ func (mb MultiBuffer) Copy(b []byte) int {
|
|||
for _, bb := range mb {
|
||||
nBytes := copy(b[total:], bb.Bytes())
|
||||
total += nBytes
|
||||
if nBytes < bb.Len() {
|
||||
if int32(nBytes) < bb.Len() {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -137,8 +137,8 @@ func (mb *MultiBuffer) Write(b []byte) {
|
|||
}
|
||||
|
||||
// Len returns the total number of bytes in the MultiBuffer.
|
||||
func (mb MultiBuffer) Len() int {
|
||||
size := 0
|
||||
func (mb MultiBuffer) Len() int32 {
|
||||
size := int32(0)
|
||||
for _, b := range mb {
|
||||
size += b.Len()
|
||||
}
|
||||
|
@ -176,10 +176,10 @@ func (mb MultiBuffer) ToNetBuffers() net.Buffers {
|
|||
// SliceBySize splits the beginning of this MultiBuffer into another one, for at most size bytes.
|
||||
func (mb *MultiBuffer) SliceBySize(size int32) MultiBuffer {
|
||||
slice := NewMultiBufferCap(10)
|
||||
sliceSize := 0
|
||||
sliceSize := int32(0)
|
||||
endIndex := len(*mb)
|
||||
for i, b := range *mb {
|
||||
if int32(b.Len()+sliceSize) > size {
|
||||
if b.Len()+sliceSize > size {
|
||||
endIndex = i
|
||||
break
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ func TestMultiBufferAppend(t *testing.T) {
|
|||
b := New()
|
||||
b.AppendBytes('a', 'b')
|
||||
mb.Append(b)
|
||||
assert(mb.Len(), Equals, 2)
|
||||
assert(mb.Len(), Equals, int32(2))
|
||||
}
|
||||
|
||||
func TestMultiBufferSliceBySizeLarge(t *testing.T) {
|
||||
|
@ -46,5 +46,5 @@ func TestMultiBufferSliceBySizeLarge(t *testing.T) {
|
|||
mb.Append(lb)
|
||||
|
||||
mb2 := mb.SliceBySize(4 * 1024)
|
||||
assert(mb2.Len(), Equals, 4*1024)
|
||||
assert(mb2.Len(), Equals, int32(4*1024))
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ func (r *BytesToBufferReader) ReadMultiBuffer() (MultiBuffer, error) {
|
|||
|
||||
nBytes, err := r.Reader.Read(r.buffer)
|
||||
if nBytes > 0 {
|
||||
mb := NewMultiBufferCap(nBytes/Size + 1)
|
||||
mb := NewMultiBufferCap(int32(nBytes/Size) + 1)
|
||||
mb.Write(r.buffer[:nBytes])
|
||||
if nBytes == len(r.buffer) && nBytes < int(largeSize) {
|
||||
freeBytes(r.buffer)
|
||||
|
@ -99,7 +99,7 @@ func (r *BufferedReader) IsBuffered() bool {
|
|||
|
||||
// BufferedBytes returns the number of bytes that is cached in this reader.
|
||||
func (r *BufferedReader) BufferedBytes() int32 {
|
||||
return int32(r.leftOver.Len())
|
||||
return r.leftOver.Len()
|
||||
}
|
||||
|
||||
// ReadByte implements io.ByteReader.
|
||||
|
@ -149,7 +149,7 @@ func (r *BufferedReader) ReadMultiBuffer() (MultiBuffer, error) {
|
|||
}
|
||||
|
||||
// ReadAtMost returns a MultiBuffer with at most size.
|
||||
func (r *BufferedReader) ReadAtMost(size int) (MultiBuffer, error) {
|
||||
func (r *BufferedReader) ReadAtMost(size int32) (MultiBuffer, error) {
|
||||
if r.leftOver == nil {
|
||||
mb, err := r.stream.ReadMultiBuffer()
|
||||
if mb.IsEmpty() && err != nil {
|
||||
|
@ -158,7 +158,7 @@ func (r *BufferedReader) ReadAtMost(size int) (MultiBuffer, error) {
|
|||
r.leftOver = mb
|
||||
}
|
||||
|
||||
mb := r.leftOver.SliceBySize(int32(size))
|
||||
mb := r.leftOver.SliceBySize(size)
|
||||
if r.leftOver.IsEmpty() {
|
||||
r.leftOver = nil
|
||||
}
|
||||
|
|
|
@ -17,23 +17,23 @@ func TestAdaptiveReader(t *testing.T) {
|
|||
reader := NewReader(bytes.NewReader(make([]byte, 1024*1024)))
|
||||
b, err := reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(b.Len(), Equals, 2*1024)
|
||||
assert(b.Len(), Equals, int32(2*1024))
|
||||
|
||||
b, err = reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(b.Len(), Equals, 8*1024)
|
||||
assert(b.Len(), Equals, int32(8*1024))
|
||||
|
||||
b, err = reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(b.Len(), Equals, 32*1024)
|
||||
assert(b.Len(), Equals, int32(32*1024))
|
||||
|
||||
b, err = reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(b.Len(), Equals, 128*1024)
|
||||
assert(b.Len(), Equals, int32(128*1024))
|
||||
|
||||
b, err = reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(b.Len(), Equals, 512*1024)
|
||||
assert(b.Len(), Equals, int32(512*1024))
|
||||
}
|
||||
|
||||
func TestBytesReaderWriteTo(t *testing.T) {
|
||||
|
|
|
@ -47,7 +47,7 @@ func TestBytesWriterReadFrom(t *testing.T) {
|
|||
|
||||
mb, err := cache.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(mb.Len(), Equals, size)
|
||||
assert(mb.Len(), Equals, int32(size))
|
||||
}
|
||||
|
||||
func TestDiscardBytes(t *testing.T) {
|
||||
|
|
|
@ -149,12 +149,12 @@ func (r *AuthenticationReader) readInternal(soft bool) (*buf.Buffer, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
rb, err := r.auth.Open(b.BytesTo(0), b.BytesTo(int(size)))
|
||||
rb, err := r.auth.Open(b.BytesTo(0), b.BytesTo(size))
|
||||
if err != nil {
|
||||
b.Release()
|
||||
return nil, err
|
||||
}
|
||||
b.Slice(0, len(rb))
|
||||
b.Slice(0, int32(len(rb)))
|
||||
|
||||
return b, nil
|
||||
}
|
||||
|
@ -200,7 +200,7 @@ func NewAuthenticationWriter(auth Authenticator, sizeParser ChunkSizeEncoder, wr
|
|||
}
|
||||
|
||||
func (w *AuthenticationWriter) seal(b *buf.Buffer) (*buf.Buffer, error) {
|
||||
encryptedSize := b.Len() + w.auth.Overhead()
|
||||
encryptedSize := int(b.Len()) + w.auth.Overhead()
|
||||
|
||||
eb := buf.New()
|
||||
common.Must(eb.Reset(func(bb []byte) (int, error) {
|
||||
|
@ -222,7 +222,7 @@ func (w *AuthenticationWriter) writeStream(mb buf.MultiBuffer) error {
|
|||
defer mb.Release()
|
||||
|
||||
payloadSize := buf.Size - w.auth.Overhead() - w.sizeParser.SizeBytes()
|
||||
mb2Write := buf.NewMultiBufferCap(len(mb) + 10)
|
||||
mb2Write := buf.NewMultiBufferCap(int32(len(mb) + 10))
|
||||
|
||||
for {
|
||||
b := buf.New()
|
||||
|
@ -256,7 +256,7 @@ func (w *AuthenticationWriter) writePacket(mb buf.MultiBuffer) error {
|
|||
return w.writer.WriteMultiBuffer(buf.NewMultiBufferValue(eb))
|
||||
}
|
||||
|
||||
mb2Write := buf.NewMultiBufferCap(len(mb) + 1)
|
||||
mb2Write := buf.NewMultiBufferCap(int32(len(mb)) + 1)
|
||||
|
||||
for !mb.IsEmpty() {
|
||||
b := mb.SplitFirst()
|
||||
|
|
|
@ -30,7 +30,7 @@ func TestAuthenticationReaderWriter(t *testing.T) {
|
|||
|
||||
payload := buf.NewSize(payloadSize)
|
||||
payload.Append(rawPayload)
|
||||
assert(payload.Len(), Equals, payloadSize)
|
||||
assert(payload.Len(), Equals, int32(payloadSize))
|
||||
|
||||
cache := buf.NewSize(160 * 1024)
|
||||
iv := make([]byte, 12)
|
||||
|
@ -45,7 +45,7 @@ func TestAuthenticationReaderWriter(t *testing.T) {
|
|||
}, PlainChunkSizeParser{}, cache, protocol.TransferTypeStream)
|
||||
|
||||
assert(writer.WriteMultiBuffer(buf.NewMultiBufferValue(payload)), IsNil)
|
||||
assert(cache.Len(), Equals, 82658)
|
||||
assert(cache.Len(), Equals, int32(82658))
|
||||
assert(writer.WriteMultiBuffer(buf.MultiBuffer{}), IsNil)
|
||||
|
||||
reader := NewAuthenticationReader(&AEADAuthenticator{
|
||||
|
@ -65,7 +65,7 @@ func TestAuthenticationReaderWriter(t *testing.T) {
|
|||
mb.AppendMulti(mb2)
|
||||
}
|
||||
|
||||
assert(mb.Len(), Equals, payloadSize)
|
||||
assert(mb.Len(), Equals, int32(payloadSize))
|
||||
|
||||
mbContent := make([]byte, payloadSize)
|
||||
mb.Read(mbContent)
|
||||
|
@ -108,7 +108,7 @@ func TestAuthenticationReaderWriterPacket(t *testing.T) {
|
|||
payload.Append(pb2)
|
||||
|
||||
assert(writer.WriteMultiBuffer(payload), IsNil)
|
||||
assert(cache.Len(), GreaterThan, 0)
|
||||
assert(cache.Len(), GreaterThan, int32(0))
|
||||
assert(writer.WriteMultiBuffer(buf.MultiBuffer{}), IsNil)
|
||||
assert(err, IsNil)
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ type ChunkStreamReader struct {
|
|||
reader *buf.BufferedReader
|
||||
|
||||
buffer []byte
|
||||
leftOverSize int
|
||||
leftOverSize int32
|
||||
}
|
||||
|
||||
func NewChunkStreamReader(sizeDecoder ChunkSizeDecoder, reader io.Reader) *ChunkStreamReader {
|
||||
|
@ -90,7 +90,7 @@ func (r *ChunkStreamReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
|
|||
if nextSize == 0 {
|
||||
return nil, io.EOF
|
||||
}
|
||||
size = int(nextSize)
|
||||
size = int32(nextSize)
|
||||
}
|
||||
r.leftOverSize = size
|
||||
|
||||
|
|
|
@ -27,16 +27,16 @@ func TestChunkStreamIO(t *testing.T) {
|
|||
|
||||
assert(writer.WriteMultiBuffer(buf.MultiBuffer{}), IsNil)
|
||||
|
||||
assert(cache.Len(), Equals, 13)
|
||||
assert(cache.Len(), Equals, int32(13))
|
||||
|
||||
mb, err := reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(mb.Len(), Equals, 4)
|
||||
assert(mb.Len(), Equals, int32(4))
|
||||
assert(mb[0].Bytes(), Equals, []byte("abcd"))
|
||||
|
||||
mb, err = reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(mb.Len(), Equals, 3)
|
||||
assert(mb.Len(), Equals, int32(3))
|
||||
assert(mb[0].Bytes(), Equals, []byte("efg"))
|
||||
|
||||
_, err = reader.ReadMultiBuffer()
|
||||
|
|
|
@ -98,7 +98,7 @@ func (p *AddressParser) readAddress(b *buf.Buffer, reader io.Reader) (net.Addres
|
|||
if err := b.AppendSupplier(buf.ReadFullFrom(reader, 1)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
domainLength := int(b.Byte(b.Len() - 1))
|
||||
domainLength := int32(b.Byte(b.Len() - 1))
|
||||
if err := b.AppendSupplier(buf.ReadFullFrom(reader, int32(domainLength))); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -96,8 +96,8 @@ func (a *Account) AsAccount() (protocol.Account, error) {
|
|||
|
||||
// Cipher is an interface for all Shadowsocks ciphers.
|
||||
type Cipher interface {
|
||||
KeySize() int
|
||||
IVSize() int
|
||||
KeySize() int32
|
||||
IVSize() int32
|
||||
NewEncryptionWriter(key []byte, iv []byte, writer io.Writer) (buf.Writer, error)
|
||||
NewDecryptionReader(key []byte, iv []byte, reader io.Reader) (buf.Reader, error)
|
||||
IsAEAD() bool
|
||||
|
@ -107,18 +107,18 @@ type Cipher interface {
|
|||
|
||||
// AesCfb represents all AES-CFB ciphers.
|
||||
type AesCfb struct {
|
||||
KeyBytes int
|
||||
KeyBytes int32
|
||||
}
|
||||
|
||||
func (*AesCfb) IsAEAD() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (v *AesCfb) KeySize() int {
|
||||
func (v *AesCfb) KeySize() int32 {
|
||||
return v.KeyBytes
|
||||
}
|
||||
|
||||
func (v *AesCfb) IVSize() int {
|
||||
func (v *AesCfb) IVSize() int32 {
|
||||
return 16
|
||||
}
|
||||
|
||||
|
@ -151,8 +151,8 @@ func (v *AesCfb) DecodePacket(key []byte, b *buf.Buffer) error {
|
|||
}
|
||||
|
||||
type AEADCipher struct {
|
||||
KeyBytes int
|
||||
IVBytes int
|
||||
KeyBytes int32
|
||||
IVBytes int32
|
||||
AEADAuthCreator func(key []byte) cipher.AEAD
|
||||
}
|
||||
|
||||
|
@ -160,11 +160,11 @@ func (*AEADCipher) IsAEAD() bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func (c *AEADCipher) KeySize() int {
|
||||
func (c *AEADCipher) KeySize() int32 {
|
||||
return c.KeyBytes
|
||||
}
|
||||
|
||||
func (c *AEADCipher) IVSize() int {
|
||||
func (c *AEADCipher) IVSize() int32 {
|
||||
return c.IVBytes
|
||||
}
|
||||
|
||||
|
@ -226,18 +226,18 @@ func (c *AEADCipher) DecodePacket(key []byte, b *buf.Buffer) error {
|
|||
}
|
||||
|
||||
type ChaCha20 struct {
|
||||
IVBytes int
|
||||
IVBytes int32
|
||||
}
|
||||
|
||||
func (*ChaCha20) IsAEAD() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (v *ChaCha20) KeySize() int {
|
||||
func (v *ChaCha20) KeySize() int32 {
|
||||
return 32
|
||||
}
|
||||
|
||||
func (v *ChaCha20) IVSize() int {
|
||||
func (v *ChaCha20) IVSize() int32 {
|
||||
return v.IVBytes
|
||||
}
|
||||
|
||||
|
@ -271,8 +271,8 @@ func (v *ChaCha20) DecodePacket(key []byte, b *buf.Buffer) error {
|
|||
|
||||
type NoneCipher struct{}
|
||||
|
||||
func (NoneCipher) KeySize() int { return 0 }
|
||||
func (NoneCipher) IVSize() int { return 0 }
|
||||
func (NoneCipher) KeySize() int32 { return 0 }
|
||||
func (NoneCipher) IVSize() int32 { return 0 }
|
||||
func (NoneCipher) IsAEAD() bool {
|
||||
return true // to avoid OTA
|
||||
}
|
||||
|
@ -293,13 +293,13 @@ func (NoneCipher) DecodePacket(key []byte, b *buf.Buffer) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func passwordToCipherKey(password []byte, keySize int) []byte {
|
||||
func passwordToCipherKey(password []byte, keySize int32) []byte {
|
||||
key := make([]byte, 0, keySize)
|
||||
|
||||
md5Sum := md5.Sum(password)
|
||||
key = append(key, md5Sum[:]...)
|
||||
|
||||
for len(key) < keySize {
|
||||
for int32(len(key)) < keySize {
|
||||
md5Hash := md5.New()
|
||||
common.Must2(md5Hash.Write(md5Sum[:]))
|
||||
common.Must2(md5Hash.Write(password))
|
||||
|
|
|
@ -26,10 +26,6 @@ const (
|
|||
authPassword = 0x02
|
||||
authNoMatchingMethod = 0xFF
|
||||
|
||||
addrTypeIPv4 = 0x01
|
||||
addrTypeIPv6 = 0x04
|
||||
addrTypeDomain = 0x03
|
||||
|
||||
statusSuccess = 0x00
|
||||
statusCmdNotSupport = 0x07
|
||||
)
|
||||
|
@ -96,8 +92,8 @@ func (s *ServerSession) Handshake(reader io.Reader, writer io.Writer) (*protocol
|
|||
}
|
||||
|
||||
if version == socks5Version {
|
||||
nMethod := int(buffer.Byte(1))
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(reader, int32(nMethod))); err != nil {
|
||||
nMethod := int32(buffer.Byte(1))
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(reader, nMethod)); err != nil {
|
||||
return nil, newError("failed to read auth methods").Base(err)
|
||||
}
|
||||
|
||||
|
|
|
@ -883,7 +883,7 @@ func TestShadowsocksChacha20Poly1305UDPConformance(t *testing.T) {
|
|||
Port: int(serverPort),
|
||||
})
|
||||
assert(err, IsNil)
|
||||
assert(nBytes, Equals, payload.Len())
|
||||
assert(int32(nBytes), Equals, payload.Len())
|
||||
|
||||
conn.SetReadDeadline(time.Now().Add(time.Second * 10))
|
||||
response := make([]byte, 10240)
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
)
|
||||
|
||||
type PacketHeader interface {
|
||||
Size() int
|
||||
Size() int32
|
||||
Write([]byte) (int, error)
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ type HeaderReader struct {
|
|||
|
||||
func (*HeaderReader) Read(reader io.Reader) (*buf.Buffer, error) {
|
||||
buffer := buf.New()
|
||||
totalBytes := 0
|
||||
totalBytes := int32(0)
|
||||
endingDetected := false
|
||||
for totalBytes < maxHeaderLength {
|
||||
err := buffer.AppendSupplier(buf.ReadFrom(reader))
|
||||
|
@ -66,13 +66,13 @@ func (*HeaderReader) Read(reader io.Reader) (*buf.Buffer, error) {
|
|||
return nil, err
|
||||
}
|
||||
if n := bytes.Index(buffer.Bytes(), []byte(ENDING)); n != -1 {
|
||||
buffer.SliceFrom(n + len(ENDING))
|
||||
buffer.SliceFrom(int32(n + len(ENDING)))
|
||||
endingDetected = true
|
||||
break
|
||||
}
|
||||
if buffer.Len() >= len(ENDING) {
|
||||
totalBytes += buffer.Len() - len(ENDING)
|
||||
leftover := buffer.BytesFrom(-len(ENDING))
|
||||
if buffer.Len() >= int32(len(ENDING)) {
|
||||
totalBytes += buffer.Len() - int32(len(ENDING))
|
||||
leftover := buffer.BytesFrom(-int32(len(ENDING)))
|
||||
buffer.Reset(func(b []byte) (int, error) {
|
||||
return copy(b, leftover), nil
|
||||
})
|
||||
|
|
|
@ -21,7 +21,7 @@ func TestReaderWriter(t *testing.T) {
|
|||
writer := NewHeaderWriter(b)
|
||||
err := writer.Write(cache)
|
||||
assert(err, IsNil)
|
||||
assert(cache.Len(), Equals, 8)
|
||||
assert(cache.Len(), Equals, int32(8))
|
||||
_, err = cache.Write([]byte{'e', 'f', 'g'})
|
||||
assert(err, IsNil)
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
|
||||
type NoOpHeader struct{}
|
||||
|
||||
func (NoOpHeader) Size() int {
|
||||
func (NoOpHeader) Size() int32 {
|
||||
return 0
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ type SRTP struct {
|
|||
number uint16
|
||||
}
|
||||
|
||||
func (*SRTP) Size() int {
|
||||
func (*SRTP) Size() int32 {
|
||||
return 4
|
||||
}
|
||||
|
||||
|
|
|
@ -22,5 +22,5 @@ func TestSRTPWrite(t *testing.T) {
|
|||
payload.AppendSupplier(srtp.Write)
|
||||
payload.Append(content)
|
||||
|
||||
assert(payload.Len(), Equals, len(content)+srtp.Size())
|
||||
assert(payload.Len(), Equals, int32(len(content))+srtp.Size())
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ type UTP struct {
|
|||
connectionId uint16
|
||||
}
|
||||
|
||||
func (*UTP) Size() int {
|
||||
func (*UTP) Size() int32 {
|
||||
return 4
|
||||
}
|
||||
|
||||
|
|
|
@ -22,5 +22,5 @@ func TestUTPWrite(t *testing.T) {
|
|||
payload.AppendSupplier(utp.Write)
|
||||
payload.Append(content)
|
||||
|
||||
assert(payload.Len(), Equals, len(content)+utp.Size())
|
||||
assert(payload.Len(), Equals, int32(len(content))+utp.Size())
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ type VideoChat struct {
|
|||
sn int
|
||||
}
|
||||
|
||||
func (vc *VideoChat) Size() int {
|
||||
func (vc *VideoChat) Size() int32 {
|
||||
return 13
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ type KCPPacketWriter struct {
|
|||
func (w *KCPPacketWriter) Overhead() int {
|
||||
overhead := 0
|
||||
if w.Header != nil {
|
||||
overhead += w.Header.Size()
|
||||
overhead += int(w.Header.Size())
|
||||
}
|
||||
if w.Security != nil {
|
||||
overhead += w.Security.Overhead()
|
||||
|
|
|
@ -29,7 +29,7 @@ type Segment interface {
|
|||
Release()
|
||||
Conversation() uint16
|
||||
Command() Command
|
||||
ByteSize() int
|
||||
ByteSize() int32
|
||||
Bytes() buf.Supplier
|
||||
parse(conv uint16, cmd Command, opt SegmentOption, buf []byte) (bool, []byte)
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ func (s *DataSegment) Bytes() buf.Supplier {
|
|||
}
|
||||
}
|
||||
|
||||
func (s *DataSegment) ByteSize() int {
|
||||
func (s *DataSegment) ByteSize() int32 {
|
||||
return 2 + 1 + 1 + 4 + 4 + 4 + 2 + s.payload.Len()
|
||||
}
|
||||
|
||||
|
@ -198,8 +198,8 @@ func (s *AckSegment) IsEmpty() bool {
|
|||
return len(s.NumberList) == 0
|
||||
}
|
||||
|
||||
func (s *AckSegment) ByteSize() int {
|
||||
return 2 + 1 + 1 + 4 + 4 + 4 + 1 + len(s.NumberList)*4
|
||||
func (s *AckSegment) ByteSize() int32 {
|
||||
return 2 + 1 + 1 + 4 + 4 + 4 + 1 + int32(len(s.NumberList)*4)
|
||||
}
|
||||
|
||||
func (s *AckSegment) Bytes() buf.Supplier {
|
||||
|
@ -214,7 +214,7 @@ func (s *AckSegment) Bytes() buf.Supplier {
|
|||
for _, number := range s.NumberList {
|
||||
b = serial.Uint32ToBytes(number, b)
|
||||
}
|
||||
return s.ByteSize(), nil
|
||||
return int(s.ByteSize()), nil
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -264,7 +264,7 @@ func (s *CmdOnlySegment) Command() Command {
|
|||
return s.Cmd
|
||||
}
|
||||
|
||||
func (*CmdOnlySegment) ByteSize() int {
|
||||
func (*CmdOnlySegment) ByteSize() int32 {
|
||||
return 2 + 1 + 1 + 4 + 4 + 4
|
||||
}
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ func TestDataSegment(t *testing.T) {
|
|||
bytes := make([]byte, nBytes)
|
||||
seg.Bytes()(bytes)
|
||||
|
||||
assert(len(bytes), Equals, nBytes)
|
||||
assert(int32(len(bytes)), Equals, nBytes)
|
||||
|
||||
iseg, _ := ReadSegment(bytes)
|
||||
seg2 := iseg.(*DataSegment)
|
||||
|
@ -56,7 +56,7 @@ func Test1ByteDataSegment(t *testing.T) {
|
|||
bytes := make([]byte, nBytes)
|
||||
seg.Bytes()(bytes)
|
||||
|
||||
assert(len(bytes), Equals, nBytes)
|
||||
assert(int32(len(bytes)), Equals, nBytes)
|
||||
|
||||
iseg, _ := ReadSegment(bytes)
|
||||
seg2 := iseg.(*DataSegment)
|
||||
|
@ -82,7 +82,7 @@ func TestACKSegment(t *testing.T) {
|
|||
bytes := make([]byte, nBytes)
|
||||
seg.Bytes()(bytes)
|
||||
|
||||
assert(len(bytes), Equals, nBytes)
|
||||
assert(int32(len(bytes)), Equals, nBytes)
|
||||
|
||||
iseg, _ := ReadSegment(bytes)
|
||||
seg2 := iseg.(*AckSegment)
|
||||
|
@ -112,7 +112,7 @@ func TestCmdSegment(t *testing.T) {
|
|||
bytes := make([]byte, nBytes)
|
||||
seg.Bytes()(bytes)
|
||||
|
||||
assert(len(bytes), Equals, nBytes)
|
||||
assert(int32(len(bytes)), Equals, nBytes)
|
||||
|
||||
iseg, _ := ReadSegment(bytes)
|
||||
seg2 := iseg.(*CmdOnlySegment)
|
||||
|
|
|
@ -79,7 +79,7 @@ func (c *connection) Write(b []byte) (int, error) {
|
|||
}
|
||||
|
||||
l := len(b)
|
||||
mb := buf.NewMultiBufferCap(l/buf.Size + 1)
|
||||
mb := buf.NewMultiBufferCap(int32(l)/buf.Size + 1)
|
||||
mb.Write(b)
|
||||
return l, c.output.WriteMultiBuffer(mb)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue