diff --git a/tcp.go b/tcp.go index fe455ac..2efcb1e 100644 --- a/tcp.go +++ b/tcp.go @@ -1,7 +1,6 @@ package main import ( - "context" "crypto/tls" "io" "log" @@ -44,27 +43,19 @@ func (tcp TCP) Listen() error { } defer conn2.Close() - ctx, can := context.WithCancel(context.Background()) - defer can() - errc := make(chan error) go func() { _, err := io.Copy(conn, conn2) - select { - case errc <- err: - case <-ctx.Done(): - close(errc) - } + errc <- err }() go func() { _, err := io.Copy(conn2, conn) - select { - case errc <- err: - case <-ctx.Done(): - close(errc) - } + errc <- err }() - <-errc + for i := 0; i < 2; i++ { + <-errc + } + close(errc) }() } }