code: func (bc *bufferedConn) Read(b []byte) (n int, err error) {
  	if bc.reader.Buffered() > 0 {
  		return bc.reader.Read(b)
  	}
  	return bc.Conn.Read(b)
  }
docs: // Read first reads from the *bufio.Reader any data that has already been
  // buffered. Once all buffered data has been read, reads go to the net.Conn.