summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib.go14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/lib.go b/src/lib.go
index 4c26297..5309c63 100644
--- a/src/lib.go
+++ b/src/lib.go
@@ -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()
}()
}