38 lines
656 B
Go
38 lines
656 B
Go
package ftp
|
|
|
|
import "io"
|
|
|
|
type debugWrapper struct {
|
|
conn io.ReadWriteCloser
|
|
io.Reader
|
|
io.Writer
|
|
}
|
|
|
|
func newDebugWrapper(conn io.ReadWriteCloser, w io.Writer) io.ReadWriteCloser {
|
|
return &debugWrapper{
|
|
Reader: io.TeeReader(conn, w),
|
|
Writer: io.MultiWriter(w, conn),
|
|
conn: conn,
|
|
}
|
|
}
|
|
|
|
func (w *debugWrapper) Close() error {
|
|
return w.conn.Close()
|
|
}
|
|
|
|
type streamDebugWrapper struct {
|
|
io.Reader
|
|
closer io.ReadCloser
|
|
}
|
|
|
|
func newStreamDebugWrapper(rd io.ReadCloser, w io.Writer) io.ReadCloser {
|
|
return &streamDebugWrapper{
|
|
Reader: io.TeeReader(rd, w),
|
|
closer: rd,
|
|
}
|
|
}
|
|
|
|
func (w *streamDebugWrapper) Close() error {
|
|
return w.closer.Close()
|
|
}
|