internal/testconn/recorder.go (26 lines of code) (raw):
package testconn
import (
"io"
"net"
)
type Recorder struct {
net.Conn
w io.WriteCloser
}
func NewRecorder(w io.WriteCloser, conn net.Conn) Recorder {
return Recorder{
Conn: conn,
w: w,
}
}
func (r Recorder) Read(b []byte) (int, error) {
n, err := r.Conn.Read(b)
_, _ = r.w.Write(b[:n])
_, _ = r.w.Write([]byte("SPLIT\n"))
return n, err
}
func (r Recorder) Close() error {
err := r.Conn.Close()
r.w.Close()
return err
}