Browse Source

fix ReadBuffer()

ghost 6 years ago
parent
commit
f7abe353df
1 changed files with 4 additions and 10 deletions
  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
 }