Codebase list golang-github-jlaffaye-ftp / a099491c-6c40-41b6-aaea-f38b7094a16d/upstream debug.go
a099491c-6c40-41b6-aaea-f38b7094a16d/upstream

Tree @a099491c-6c40-41b6-aaea-f38b7094a16d/upstream (Download .tar.gz)

debug.go @a099491c-6c40-41b6-aaea-f38b7094a16d/upstreamraw · history · blame

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()
}