mirror of https://github.com/v2ray/v2ray-core
cleanup
parent
74830b2583
commit
53f99ddde6
|
@ -37,7 +37,7 @@ type ChunkStreamReader struct {
|
||||||
|
|
||||||
buffer []byte
|
buffer []byte
|
||||||
leftOver buf.MultiBuffer
|
leftOver buf.MultiBuffer
|
||||||
leftOverSize uint16
|
leftOverSize int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewChunkStreamReader(sizeDecoder ChunkSizeDecoder, reader io.Reader) *ChunkStreamReader {
|
func NewChunkStreamReader(sizeDecoder ChunkSizeDecoder, reader io.Reader) *ChunkStreamReader {
|
||||||
|
@ -50,6 +50,7 @@ func NewChunkStreamReader(sizeDecoder ChunkSizeDecoder, reader io.Reader) *Chunk
|
||||||
|
|
||||||
func (r *ChunkStreamReader) readAtLeast(size int) error {
|
func (r *ChunkStreamReader) readAtLeast(size int) error {
|
||||||
mb := r.leftOver
|
mb := r.leftOver
|
||||||
|
r.leftOver = nil
|
||||||
for mb.Len() < size {
|
for mb.Len() < size {
|
||||||
extra, err := r.reader.Read()
|
extra, err := r.reader.Read()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -74,7 +75,7 @@ func (r *ChunkStreamReader) readSize() (uint16, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ChunkStreamReader) Read() (buf.MultiBuffer, error) {
|
func (r *ChunkStreamReader) Read() (buf.MultiBuffer, error) {
|
||||||
size := int(r.leftOverSize)
|
size := r.leftOverSize
|
||||||
if size == 0 {
|
if size == 0 {
|
||||||
nextSize, err := r.readSize()
|
nextSize, err := r.readSize()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -94,7 +95,7 @@ func (r *ChunkStreamReader) Read() (buf.MultiBuffer, error) {
|
||||||
|
|
||||||
if size >= r.leftOver.Len() {
|
if size >= r.leftOver.Len() {
|
||||||
mb := r.leftOver
|
mb := r.leftOver
|
||||||
r.leftOverSize = uint16(size - r.leftOver.Len())
|
r.leftOverSize = size - r.leftOver.Len()
|
||||||
r.leftOver = nil
|
r.leftOver = nil
|
||||||
return mb, nil
|
return mb, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -647,12 +647,12 @@ func TestVMessNone(t *testing.T) {
|
||||||
payload := make([]byte, 10240*1024)
|
payload := make([]byte, 10240*1024)
|
||||||
rand.Read(payload)
|
rand.Read(payload)
|
||||||
|
|
||||||
nBytes, err := conn.Write([]byte(payload))
|
nBytes, err := conn.Write(payload)
|
||||||
assert.Error(err).IsNil()
|
assert.Error(err).IsNil()
|
||||||
assert.Int(nBytes).Equals(len(payload))
|
assert.Int(nBytes).Equals(len(payload))
|
||||||
|
|
||||||
response := readFrom(conn, time.Second*20, 10240*1024)
|
response := readFrom(conn, time.Second*20, 10240*1024)
|
||||||
assert.Bytes(response).Equals(xor([]byte(payload)))
|
assert.Bytes(response).Equals(xor(payload))
|
||||||
assert.Error(conn.Close()).IsNil()
|
assert.Error(conn.Close()).IsNil()
|
||||||
wg.Done()
|
wg.Done()
|
||||||
}()
|
}()
|
||||||
|
|
Loading…
Reference in New Issue