forked from jlaffaye/ftp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdebug.go
More file actions
37 lines (30 loc) · 656 Bytes
/
debug.go
File metadata and controls
37 lines (30 loc) · 656 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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()
}