@@ -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