瀏覽代碼

fix ReadBuffer()

ghost 6 年之前
父節點
當前提交
f7abe353df
共有 1 個文件被更改,包括 4 次插入10 次删除
  1. 4 10
      common/buf/reader.go

+ 4 - 10
common/buf/reader.go

@@ -24,20 +24,14 @@ func readOneUDP(r io.Reader) (*Buffer, error) {
 	return nil, newError("Reader returns too many empty payloads.")
 }
 
-// ReadBuffer reads a Buffer from the given reader, without allocating large buffer in advance.
+// ReadBuffer reads a Buffer from the given reader.
 func ReadBuffer(r io.Reader) (*Buffer, error) {
-	// Use an one-byte buffer to wait for incoming payload.
-	var firstByte [1]byte
-	nBytes, err := r.Read(firstByte[:])
+	b := New()
+	_, err := b.ReadFrom(r)
 	if err != nil {
+		b.Release()
 		return nil, err
 	}
-
-	b := New()
-	if nBytes > 0 {
-		common.Must(b.WriteByte(firstByte[0]))
-	}
-	b.ReadFrom(r)
 	return b, nil
 }