From 97804c229948e5c24f1862a4c3ee114188eb9c9b Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 22 Oct 2017 10:08:16 +0200 Subject: TeeReader --- main.go | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/main.go b/main.go index 47663c7..410badc 100644 --- a/main.go +++ b/main.go @@ -32,21 +32,16 @@ type Data struct { func dump(dir Direction, src, dst net.Conn, data chan<- Data) error { buf := make([]byte, 4096) + r := io.TeeReader(src, dst) for k := 1; ; k++ { - n, err := src.Read(buf) + n, err := r.Read(buf) if err != nil { if err == io.EOF { return nil } - return fmt.Errorf("READ %v", err) + return err } - data <- Data{Round: k, Dir: dir, Data: buf[:n]} - - _, err = dst.Write(buf[:n]) - if err != nil { - return fmt.Errorf("WRITE %v", err) - } } } @@ -75,14 +70,14 @@ func main() { go func(dir Direction) { if err := dump(dir, srv, cnt, data); err != nil { - fmt.Println("ERROR", dir, err) + log.Println(dir, err) } wg.Done() }(ServerClient) go func(dir Direction) { if err := dump(dir, cnt, srv, data); err != nil { - fmt.Println("ERROR", dir, err) + log.Println(dir, err) } wg.Done() }(ClientServer) -- cgit v1.2.3