From 2c259165fff5f32b514ceff2fb00d60241362b95 Mon Sep 17 00:00:00 2001 From: v2ray Date: Sun, 3 Jul 2016 22:32:28 +0200 Subject: [PATCH] read entire small payload --- proxy/vmess/io/reader.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/proxy/vmess/io/reader.go b/proxy/vmess/io/reader.go index 238fa641c..b625ed3ac 100644 --- a/proxy/vmess/io/reader.go +++ b/proxy/vmess/io/reader.go @@ -66,6 +66,13 @@ func (this *AuthChunkReader) Read() (*alloc.Buffer, error) { this.chunkLength = int(length) - 4 this.validator = NewValidator(serial.BytesToUint32(buffer.Value[2:6])) buffer.SliceFrom(6) + if buffer.Len() < this.chunkLength && this.chunkLength <= 2048 { + _, err := buffer.FillFrom(this.reader) + if err != nil { + buffer.Release() + return nil, io.ErrUnexpectedEOF + } + } } else if buffer.Len() < this.chunkLength { _, err := buffer.FillFrom(this.reader) if err != nil {