diff --git a/rvpn/genericlistener/conn_wedge.go b/rvpn/genericlistener/conn_wedge.go index 542fbda..686896f 100644 --- a/rvpn/genericlistener/conn_wedge.go +++ b/rvpn/genericlistener/conn_wedge.go @@ -53,19 +53,11 @@ func (w *WedgeConn) Buffered() int { func (w *WedgeConn) PeekAll() (buf []byte, err error) { loginfo.Println("PeekAll") - var peek []byte - for { - b, err := w.reader.Peek(1) - if err != nil { - if len(peek) > 0 { - return peek, nil - } - - var t byte - t = b[0] - - peek = append(peek, t) - loginfo.Println("len", len(peek)) - } + _, err = w.Peek(1) + if err != nil { + return nil, err } + + buf, err = w.Peek(w.Buffered()) + return } diff --git a/rvpn/genericlistener/listener_generic.go b/rvpn/genericlistener/listener_generic.go index 69d4986..c35a835 100644 --- a/rvpn/genericlistener/listener_generic.go +++ b/rvpn/genericlistener/listener_generic.go @@ -167,12 +167,7 @@ func handleStream(ctx context.Context, wConn *WedgeConn) { loginfo.Println("handle Stream") loginfo.Println("conn", wConn, wConn.LocalAddr().String(), wConn.RemoteAddr().String()) - //peek for one byte to get the readers to converge - //look at buffer - //get the realrequest - peek, err := wConn.Peek(1) - loginfo.Println(hex.Dump(peek[0:])) - peek, err = wConn.Peek(wConn.Buffered()) + peek, err := wConn.PeekAll() loginfo.Println(hex.Dump(peek[0:])) if err != nil {