diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.go | 14 |
1 files changed, 4 insertions, 10 deletions
@@ -2,7 +2,6 @@ package binder import ( "fmt" - "io" "net" "os" "os/user" @@ -57,11 +56,6 @@ func isRunningAsRoot() bool { return os.Geteuid() == 0 } -func copyData(closer chan struct{}, from io.Reader, to io.Writer) { - io.Copy(to, from) - closer <- struct{}{} -} - func ParseArgs(args []string) CLIArgs { if len(args) != 3 { fmt.Fprintf( @@ -118,11 +112,11 @@ func Start(toAddr string, listener net.Listener) { } defer connTo.Close() - closer := make(chan struct{}, 2) - go copyData(closer, connFrom, connTo) - go copyData(closer, connTo, connFrom) + c := make(chan g.CopyResult) + go g.CopyData(c, "c2s", connFrom, connTo) + go g.CopyData(c, "s2c", connTo, connFrom) go func() { - <-closer + <- c EmitActiveConnection.Dec() }() } |