Skip to content

Commit 3b89f41

Browse files
Revert "protocol: avoid double buffering"
This reverts commit 2df67b4.
1 parent bac82fd commit 3b89f41

File tree

1 file changed

+3
-28
lines changed

1 file changed

+3
-28
lines changed

protocol.go

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ type Conn struct {
5252
readErr error
5353
conn net.Conn
5454
bufReader *bufio.Reader
55-
reader io.Reader
5655
header *Header
5756
ProxyHeaderPolicy Policy
5857
Validate Validator
@@ -155,11 +154,9 @@ func NewConn(conn net.Conn, opts ...func(*Conn)) *Conn {
155154
// For v2 the header length is at most 52 bytes plus the length of the TLVs.
156155
// We use 256 bytes to be safe.
157156
const bufSize = 256
158-
br := bufio.NewReaderSize(conn, bufSize)
159157

160158
pConn := &Conn{
161-
bufReader: br,
162-
reader: io.MultiReader(br, conn),
159+
bufReader: bufio.NewReaderSize(conn, bufSize),
163160
conn: conn,
164161
}
165162

@@ -181,7 +178,7 @@ func (p *Conn) Read(b []byte) (int, error) {
181178
return 0, p.readErr
182179
}
183180

184-
return p.reader.Read(b)
181+
return p.bufReader.Read(b)
185182
}
186183

187184
// Write wraps original conn.Write
@@ -363,27 +360,5 @@ func (p *Conn) WriteTo(w io.Writer) (int64, error) {
363360
if p.readErr != nil {
364361
return 0, p.readErr
365362
}
366-
367-
b := make([]byte, p.bufReader.Buffered())
368-
if _, err := p.bufReader.Read(b); err != nil {
369-
return 0, err // this should never as we read buffered data
370-
}
371-
372-
var n int64
373-
{
374-
nn, err := w.Write(b)
375-
n += int64(nn)
376-
if err != nil {
377-
return n, err
378-
}
379-
}
380-
{
381-
nn, err := io.Copy(w, p.conn)
382-
n += nn
383-
if err != nil {
384-
return n, err
385-
}
386-
}
387-
388-
return n, nil
363+
return p.bufReader.WriteTo(w)
389364
}

0 commit comments

Comments
 (0)