Skip to content

Commit 8d833b8

Browse files
Use buffered number to calculate header length
1 parent c73338a commit 8d833b8

File tree

4 files changed

+2
-6
lines changed

4 files changed

+2
-6
lines changed

header.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ type Header struct {
4242
SourceAddr net.Addr
4343
DestinationAddr net.Addr
4444
rawTLVs []byte
45-
length int
4645
}
4746

4847
// HeaderProxyFromAddrs creates a new PROXY header from a source and a

protocol.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -295,13 +295,12 @@ func (p *Conn) readHeader() error {
295295
const bufSize = 256
296296

297297
bb := bytes.NewBuffer(make([]byte, 0, bufSize))
298-
tr := io.TeeReader(p.conn, bb)
299-
br := bufio.NewReaderSize(tr, bufSize)
298+
br := bufio.NewReaderSize(io.TeeReader(p.conn, bb), bufSize)
300299

301300
header, err := Read(br)
302301

303302
if err == nil {
304-
_, err = io.CopyN(io.Discard, bb, int64(header.length))
303+
_, err = io.CopyN(io.Discard, bb, int64(bb.Len()-br.Buffered()))
305304
}
306305

307306
if bb.Len() == 0 {

v1.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ func parseVersion1(reader *bufio.Reader) (*Header, error) {
125125
// Command doesn't exist in v1 but set it for other parts of this library
126126
// to rely on it for determining connection details.
127127
header := initVersion1()
128-
header.length = len(buf)
129128

130129
// Transport protocol has been processed already.
131130
header.TransportProtocol = transportProtocol

v2.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ func parseVersion2(reader *bufio.Reader) (header *Header, err error) {
100100
if !header.validateLength(length) {
101101
return nil, ErrInvalidLength
102102
}
103-
header.length = 16 + int(length)
104103

105104
// Return early if the length is zero, which means that
106105
// there's no address information and TLVs present for UNSPEC.

0 commit comments

Comments
 (0)