ソースを参照

read entire small payload

v2ray 9 年 前
コミット
2c259165ff
1 ファイル変更7 行追加0 行削除
  1. 7 0
      proxy/vmess/io/reader.go

+ 7 - 0
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 {