소스 검색

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 {