diff options
author | EuAndreh <eu@euandre.org> | 2024-07-22 16:54:52 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-07-22 16:54:52 -0300 |
commit | 1adaa38f3bea29b55ca835a50118869d2e07d016 (patch) | |
tree | 9a2bc7b9f3f26d20206f5f8927354dc398103a70 /src/lib.go | |
parent | Makefile: Do not mess with glaze.socket (diff) | |
download | binder-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.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() }() } |