mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-12-30 05:55:20 -05:00
remove use of buf.NewSize()
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
"v2ray.com/core/common"
|
||||
"v2ray.com/core/common/buf"
|
||||
"v2ray.com/core/common/bytespool"
|
||||
"v2ray.com/core/common/serial"
|
||||
)
|
||||
|
||||
@@ -76,24 +77,26 @@ func (v *ChunkReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
|
||||
}
|
||||
size += AuthSize
|
||||
|
||||
buffer := buf.NewSize(int32(size))
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(v.reader, int32(size))); err != nil {
|
||||
buffer.Release()
|
||||
buffer := bytespool.Alloc(int32(size))
|
||||
defer bytespool.Free(buffer)
|
||||
|
||||
if _, err := io.ReadFull(v.reader, buffer[:size]); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
authBytes := buffer.BytesTo(AuthSize)
|
||||
payload := buffer.BytesFrom(AuthSize)
|
||||
authBytes := buffer[:AuthSize]
|
||||
payload := buffer[AuthSize:size]
|
||||
|
||||
actualAuthBytes := make([]byte, AuthSize)
|
||||
v.auth.Authenticate(payload)(actualAuthBytes)
|
||||
if !bytes.Equal(authBytes, actualAuthBytes) {
|
||||
buffer.Release()
|
||||
return nil, newError("invalid auth")
|
||||
}
|
||||
buffer.Advance(AuthSize)
|
||||
|
||||
return buf.NewMultiBufferValue(buffer), nil
|
||||
var mb buf.MultiBuffer
|
||||
common.Must2(mb.Write(payload))
|
||||
|
||||
return mb, nil
|
||||
}
|
||||
|
||||
type ChunkWriter struct {
|
||||
|
||||
@@ -24,11 +24,11 @@ func TestNormalChunkReading(t *testing.T) {
|
||||
func TestNormalChunkWriting(t *testing.T) {
|
||||
assert := With(t)
|
||||
|
||||
buffer := buf.NewSize(512)
|
||||
buffer := buf.New()
|
||||
writer := NewChunkWriter(buffer, NewAuthenticator(ChunkKeyGenerator(
|
||||
[]byte{21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36})))
|
||||
|
||||
b := buf.NewSize(256)
|
||||
b := buf.New()
|
||||
b.Write([]byte{11, 12, 13, 14, 15, 16, 17, 18})
|
||||
err := writer.WriteMultiBuffer(buf.NewMultiBufferValue(b))
|
||||
assert(err, IsNil)
|
||||
|
||||
@@ -3,6 +3,7 @@ package shadowsocks_test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"v2ray.com/core/common"
|
||||
"v2ray.com/core/common/buf"
|
||||
"v2ray.com/core/common/net"
|
||||
"v2ray.com/core/common/protocol"
|
||||
@@ -29,7 +30,7 @@ func TestUDPEncoding(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
data := buf.NewSize(256)
|
||||
data := buf.New()
|
||||
data.AppendSupplier(serial.WriteString("test string"))
|
||||
encodedData, err := EncodeUDPPacket(request, data.Bytes())
|
||||
assert(err, IsNil)
|
||||
@@ -104,8 +105,7 @@ func TestTCPRequest(t *testing.T) {
|
||||
|
||||
runTest := func(request *protocol.RequestHeader, payload []byte) {
|
||||
data := buf.New()
|
||||
defer data.Release()
|
||||
data.Write(payload)
|
||||
common.Must2(data.Write(payload))
|
||||
|
||||
cache := buf.New()
|
||||
defer cache.Release()
|
||||
@@ -142,6 +142,8 @@ func TestUDPReaderWriter(t *testing.T) {
|
||||
}),
|
||||
}
|
||||
cache := buf.New()
|
||||
defer cache.Release()
|
||||
|
||||
writer := &buf.SequentialWriter{Writer: &UDPWriter{
|
||||
Writer: cache,
|
||||
Request: &protocol.RequestHeader{
|
||||
@@ -158,21 +160,25 @@ func TestUDPReaderWriter(t *testing.T) {
|
||||
User: user,
|
||||
}
|
||||
|
||||
b := buf.New()
|
||||
b.AppendSupplier(serial.WriteString("test payload"))
|
||||
err := writer.WriteMultiBuffer(buf.NewMultiBufferValue(b))
|
||||
assert(err, IsNil)
|
||||
{
|
||||
b := buf.New()
|
||||
b.AppendSupplier(serial.WriteString("test payload"))
|
||||
err := writer.WriteMultiBuffer(buf.NewMultiBufferValue(b))
|
||||
assert(err, IsNil)
|
||||
|
||||
payload, err := reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(payload[0].String(), Equals, "test payload")
|
||||
payload, err := reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(payload[0].String(), Equals, "test payload")
|
||||
}
|
||||
|
||||
b = buf.New()
|
||||
b.AppendSupplier(serial.WriteString("test payload 2"))
|
||||
err = writer.WriteMultiBuffer(buf.NewMultiBufferValue(b))
|
||||
assert(err, IsNil)
|
||||
{
|
||||
b := buf.New()
|
||||
b.AppendSupplier(serial.WriteString("test payload 2"))
|
||||
err := writer.WriteMultiBuffer(buf.NewMultiBufferValue(b))
|
||||
assert(err, IsNil)
|
||||
|
||||
payload, err = reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(payload[0].String(), Equals, "test payload 2")
|
||||
payload, err := reader.ReadMultiBuffer()
|
||||
assert(err, IsNil)
|
||||
assert(payload[0].String(), Equals, "test payload 2")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user