summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib.go14
-rw-r--r--tests/lib_test.go1
2 files changed, 5 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()
}()
}
diff --git a/tests/lib_test.go b/tests/lib_test.go
index a857510..4e63d06 100644
--- a/tests/lib_test.go
+++ b/tests/lib_test.go
@@ -8,6 +8,7 @@ import (
"euandre.org/binder/src"
)
+
func TestPlaceholder(t *testing.T) {
g.AssertEqual(t, binder.USER, "nobody")
}