1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-02-20 23:47:21 -05:00

remove use of Buffer.Value

This commit is contained in:
Darien Raymond 2016-12-05 21:33:24 +01:00
parent 186bf1f141
commit 4bf8288cc2
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
10 changed files with 21 additions and 22 deletions

View File

@ -24,7 +24,7 @@ func (v *OutboundConnectionHandler) Dispatch(destination v2net.Destination, payl
v.Destination = destination v.Destination = destination
if !payload.IsEmpty() { if !payload.IsEmpty() {
v.ConnOutput.Write(payload.Value) v.ConnOutput.Write(payload.Bytes())
} }
payload.Release() payload.Release()

View File

@ -40,14 +40,14 @@ func MarshalCommand(command interface{}, writer io.Writer) error {
return err return err
} }
auth := Authenticate(buffer.Value) auth := Authenticate(buffer.Bytes())
len := buffer.Len() + 4 len := buffer.Len() + 4
if len > 255 { if len > 255 {
return ErrCommandTooLarge return ErrCommandTooLarge
} }
writer.Write([]byte{cmdId, byte(len), byte(auth >> 24), byte(auth >> 16), byte(auth >> 8), byte(auth)}) writer.Write([]byte{cmdId, byte(len), byte(auth >> 24), byte(auth >> 16), byte(auth >> 8), byte(auth)})
writer.Write(buffer.Value) writer.Write(buffer.Bytes())
return nil return nil
} }

View File

@ -25,7 +25,7 @@ func TestSwitchAccount(t *testing.T) {
err := MarshalCommand(sa, buffer) err := MarshalCommand(sa, buffer)
assert.Error(err).IsNil() assert.Error(err).IsNil()
cmd, err := UnmarshalCommand(1, buffer.Value[2:]) cmd, err := UnmarshalCommand(1, buffer.BytesFrom(2))
assert.Error(err).IsNil() assert.Error(err).IsNil()
sa2, ok := cmd.(*protocol.CommandSwitchAccount) sa2, ok := cmd.(*protocol.CommandSwitchAccount)

View File

@ -19,11 +19,11 @@ func TestAuthenticate(t *testing.T) {
buffer := alloc.NewBuffer().Clear() buffer := alloc.NewBuffer().Clear()
buffer.AppendBytes(1, 2, 3, 4) buffer.AppendBytes(1, 2, 3, 4)
Authenticate(buffer) Authenticate(buffer)
assert.Bytes(buffer.Value).Equals([]byte{0, 8, 87, 52, 168, 125, 1, 2, 3, 4}) assert.Bytes(buffer.Bytes()).Equals([]byte{0, 8, 87, 52, 168, 125, 1, 2, 3, 4})
b2, err := NewAuthChunkReader(buffer).Read() b2, err := NewAuthChunkReader(buffer).Read()
assert.Error(err).IsNil() assert.Error(err).IsNil()
assert.Bytes(b2.Value).Equals([]byte{1, 2, 3, 4}) assert.Bytes(b2.Bytes()).Equals([]byte{1, 2, 3, 4})
} }
func TestSingleIO(t *testing.T) { func TestSingleIO(t *testing.T) {
@ -39,7 +39,7 @@ func TestSingleIO(t *testing.T) {
reader := NewAuthChunkReader(content) reader := NewAuthChunkReader(content)
buffer, err := reader.Read() buffer, err := reader.Read()
assert.Error(err).IsNil() assert.Error(err).IsNil()
assert.Bytes(buffer.Value).Equals([]byte("abcd")) assert.String(buffer.String()).Equals("abcd")
} }
func TestLargeIO(t *testing.T) { func TestLargeIO(t *testing.T) {
@ -73,7 +73,7 @@ func TestLargeIO(t *testing.T) {
break break
} }
assert.Error(err).IsNil() assert.Error(err).IsNil()
actualContent = append(actualContent, buffer.Value...) actualContent = append(actualContent, buffer.Bytes()...)
} }
assert.Int(len(actualContent)).Equals(len(content)) assert.Int(len(actualContent)).Equals(len(content))

View File

@ -61,9 +61,9 @@ func (v *AuthChunkReader) Read() (*alloc.Buffer, error) {
return nil, io.ErrUnexpectedEOF return nil, io.ErrUnexpectedEOF
} }
} }
length := serial.BytesToUint16(buffer.Value[:2]) length := serial.BytesToUint16(buffer.BytesTo(2))
v.chunkLength = int(length) - 4 v.chunkLength = int(length) - 4
v.validator = NewValidator(serial.BytesToUint32(buffer.Value[2:6])) v.validator = NewValidator(serial.BytesToUint32(buffer.BytesRange(2, 6)))
buffer.SliceFrom(6) buffer.SliceFrom(6)
if buffer.Len() < v.chunkLength && v.chunkLength <= 2048 { if buffer.Len() < v.chunkLength && v.chunkLength <= 2048 {
_, err := buffer.FillFrom(v.reader) _, err := buffer.FillFrom(v.reader)
@ -86,10 +86,10 @@ func (v *AuthChunkReader) Read() (*alloc.Buffer, error) {
} }
if buffer.Len() < v.chunkLength { if buffer.Len() < v.chunkLength {
v.validator.Consume(buffer.Value) v.validator.Consume(buffer.Bytes())
v.chunkLength -= buffer.Len() v.chunkLength -= buffer.Len()
} else { } else {
v.validator.Consume(buffer.Value[:v.chunkLength]) v.validator.Consume(buffer.BytesTo(v.chunkLength))
if !v.validator.Validate() { if !v.validator.Validate() {
buffer.Release() buffer.Release()
return nil, errors.New("VMess|AuthChunkReader: Invalid auth.") return nil, errors.New("VMess|AuthChunkReader: Invalid auth.")
@ -97,7 +97,7 @@ func (v *AuthChunkReader) Read() (*alloc.Buffer, error) {
leftLength := buffer.Len() - v.chunkLength leftLength := buffer.Len() - v.chunkLength
if leftLength > 0 { if leftLength > 0 {
v.last = alloc.NewBuffer().Clear() v.last = alloc.NewBuffer().Clear()
v.last.Append(buffer.Value[v.chunkLength:]) v.last.Append(buffer.BytesFrom(v.chunkLength))
buffer.Slice(0, v.chunkLength) buffer.Slice(0, v.chunkLength)
} }

View File

@ -29,7 +29,7 @@ func (v *AuthChunkWriter) Release() {
func Authenticate(buffer *alloc.Buffer) { func Authenticate(buffer *alloc.Buffer) {
fnvHash := fnv.New32a() fnvHash := fnv.New32a()
fnvHash.Write(buffer.Value) fnvHash.Write(buffer.Bytes())
buffer.PrependHash(fnvHash) buffer.PrependHash(fnvHash)
buffer.PrependUint16(uint16(buffer.Len())) buffer.PrependUint16(uint16(buffer.Len()))

View File

@ -21,7 +21,7 @@ func (v *SimpleAuthenticator) Overhead() int {
func (v *SimpleAuthenticator) Seal(buffer *alloc.Buffer) { func (v *SimpleAuthenticator) Seal(buffer *alloc.Buffer) {
buffer.PrependUint16(uint16(buffer.Len())) buffer.PrependUint16(uint16(buffer.Len()))
fnvHash := fnv.New32a() fnvHash := fnv.New32a()
fnvHash.Write(buffer.Value) fnvHash.Write(buffer.Bytes())
buffer.PrependHash(fnvHash) buffer.PrependHash(fnvHash)
len := buffer.Len() len := buffer.Len()
@ -29,7 +29,7 @@ func (v *SimpleAuthenticator) Seal(buffer *alloc.Buffer) {
if xtra != 0 { if xtra != 0 {
buffer.Slice(0, len+xtra) buffer.Slice(0, len+xtra)
} }
xorfwd(buffer.Value) xorfwd(buffer.Bytes())
if xtra != 0 { if xtra != 0 {
buffer.Slice(0, len) buffer.Slice(0, len)
} }
@ -41,7 +41,7 @@ func (v *SimpleAuthenticator) Open(buffer *alloc.Buffer) bool {
if xtra != 0 { if xtra != 0 {
buffer.Slice(0, len+xtra) buffer.Slice(0, len+xtra)
} }
xorbkd(buffer.Value) xorbkd(buffer.Bytes())
if xtra != 0 { if xtra != 0 {
buffer.Slice(0, len) buffer.Slice(0, len)
} }

View File

@ -19,7 +19,7 @@ func TestSimpleAuthenticator(t *testing.T) {
auth.Seal(buffer) auth.Seal(buffer)
assert.Bool(auth.Open(buffer)).IsTrue() assert.Bool(auth.Open(buffer)).IsTrue()
assert.Bytes(buffer.Value).Equals([]byte{'a', 'b', 'c', 'd', 'e', 'f', 'g'}) assert.Bytes(buffer.Bytes()).Equals([]byte{'a', 'b', 'c', 'd', 'e', 'f', 'g'})
} }
func TestSimpleAuthenticator2(t *testing.T) { func TestSimpleAuthenticator2(t *testing.T) {
@ -37,8 +37,7 @@ func TestSimpleAuthenticator2(t *testing.T) {
func BenchmarkSimpleAuthenticator(b *testing.B) { func BenchmarkSimpleAuthenticator(b *testing.B) {
buffer := alloc.NewLocalBuffer(2048).Clear() buffer := alloc.NewLocalBuffer(2048).Clear()
buffer.Slice(0, 1024) buffer.FillFullFrom(rand.Reader, 1024)
rand.Read(buffer.Value)
auth := NewSimpleAuthenticator() auth := NewSimpleAuthenticator()
b.SetBytes(int64(buffer.Len())) b.SetBytes(int64(buffer.Len()))

View File

@ -38,7 +38,7 @@ func TestDataSegment(t *testing.T) {
assert.Uint32(seg2.Timestamp).Equals(seg.Timestamp) assert.Uint32(seg2.Timestamp).Equals(seg.Timestamp)
assert.Uint32(seg2.SendingNext).Equals(seg.SendingNext) assert.Uint32(seg2.SendingNext).Equals(seg.SendingNext)
assert.Uint32(seg2.Number).Equals(seg.Number) assert.Uint32(seg2.Number).Equals(seg.Number)
assert.Bytes(seg2.Data.Value).Equals(seg.Data.Value) assert.Bytes(seg2.Data.Bytes()).Equals(seg.Data.Bytes())
} }
func TestACKSegment(t *testing.T) { func TestACKSegment(t *testing.T) {

View File

@ -136,7 +136,7 @@ func (v *UDPHub) start() {
oobBytes := make([]byte, 256) oobBytes := make([]byte, 256)
for v.Running() { for v.Running() {
buffer := alloc.NewSmallBuffer() buffer := alloc.NewSmallBuffer()
nBytes, noob, _, addr, err := ReadUDPMsg(v.conn, buffer.Value, oobBytes) nBytes, noob, _, addr, err := ReadUDPMsg(v.conn, buffer.Bytes(), oobBytes)
if err != nil { if err != nil {
log.Info("UDP|Hub: Failed to read UDP msg: ", err) log.Info("UDP|Hub: Failed to read UDP msg: ", err)
buffer.Release() buffer.Release()