diff options
| author | EuAndreh <eu@euandre.org> | 2024-08-11 08:06:55 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2024-08-11 08:06:55 -0300 |
| commit | 9dfbc097664facb8ffafcbe09de70a6d37a9d21e (patch) | |
| tree | 851f1f24e57722d91c9affa075ca063c07c064b4 | |
| parent | tests/integration.sh: Re-enable and fix test (diff) | |
| download | binder-9dfbc097664facb8ffafcbe09de70a6d37a9d21e.tar.gz binder-9dfbc097664facb8ffafcbe09de70a6d37a9d21e.tar.xz | |
src/binder.go: Format and reorder code
| -rw-r--r-- | src/binder.go | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/binder.go b/src/binder.go index b115c52..69b5e1b 100644 --- a/src/binder.go +++ b/src/binder.go @@ -1,8 +1,8 @@ package binder import ( - "io" "fmt" + "io" "net" "os" "os/user" @@ -57,6 +57,15 @@ func isRunningAsRoot() bool { return os.Geteuid() == 0 } +func dropRoot() { + if isRunningAsRoot() { + dropPrivileges(_USER) + if isRunningAsRoot() { + panic("Failed to drop privileges") + } + } +} + func parseArgs(args []string) _CLIArgs { if len(args) != 3 { fmt.Fprintf( @@ -79,21 +88,12 @@ func listen(fromAddr string) net.Listener { return listener } -func dropRoot() { - if isRunningAsRoot() { - dropPrivileges(_USER) - if isRunningAsRoot() { - panic("Failed to drop privileges") - } - } -} - -func copyData(c chan struct{}, from io.Reader, to io.WriteCloser) { +func copyData(c chan struct {}, from io.Reader, to io.WriteCloser) { io.Copy(to, from) - c <- struct{}{} + c <- struct {} {} } -func Start(toAddr string, listener net.Listener) { +func start(toAddr string, listener net.Listener) { for { connFrom, err := listener.Accept() if err != nil { @@ -114,12 +114,11 @@ func Start(toAddr string, listener net.Listener) { "dial-connection-error", "err", err, ) - connFrom.Close() continue } defer connTo.Close() - c := make(chan struct{}) + c := make(chan struct {}) go copyData(c, connFrom, connTo) go copyData(c, connTo, connFrom) go func() { @@ -130,10 +129,11 @@ func Start(toAddr string, listener net.Listener) { } + func Main() { g.Init() args := parseArgs(os.Args) listener := listen(args.fromAddr) dropRoot() - Start(args.toAddr, listener) + start(args.toAddr, listener) } |
