summaryrefslogtreecommitdiff
path: root/src/lib.go
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-07-22 16:54:52 -0300
committerEuAndreh <eu@euandre.org>2024-07-22 16:54:52 -0300
commit1adaa38f3bea29b55ca835a50118869d2e07d016 (patch)
tree9a2bc7b9f3f26d20206f5f8927354dc398103a70 /src/lib.go
parentMakefile: Do not mess with glaze.socket (diff)
downloadbinder-1adaa38f3bea29b55ca835a50118869d2e07d016.tar.gz
binder-1adaa38f3bea29b55ca835a50118869d2e07d016.tar.xz
src/lib.go: Get CopyData() from gobang
Diffstat (limited to 'src/lib.go')
-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()
}()
}