From 17f3df7e364d962973c9d9698f6f71afecbb8b03 Mon Sep 17 00:00:00 2001 From: Peter Date: Sun, 10 Jan 2021 13:14:10 +0000 Subject: [PATCH 1/3] Added an option to ignore attached stdin, for compatibility with node child_process --- src/cli/cli.go | 4 +++- src/croc/croc.go | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/cli/cli.go b/src/cli/cli.go index 0c5bc2b1..23914018 100644 --- a/src/cli/cli.go +++ b/src/cli/cli.go @@ -85,6 +85,7 @@ func Run() (err error) { &cli.BoolFlag{Name: "no-compress", Usage: "disable compression"}, &cli.BoolFlag{Name: "ask", Usage: "make sure sender and recipient are prompted"}, &cli.BoolFlag{Name: "local", Usage: "force to use only local connections"}, + &cli.BoolFlag{Name: "ignoreStdin", Usage: "ignore piped stdin"}, &cli.StringFlag{Name: "ip", Value: "", Usage: "set sender ip if known e.g. 10.0.0.1:9009, [::1]:9009"}, &cli.StringFlag{Name: "relay", Value: models.DEFAULT_RELAY, Usage: "address of the relay", EnvVars: []string{"CROC_RELAY"}}, &cli.StringFlag{Name: "relay6", Value: models.DEFAULT_RELAY6, Usage: "ipv6 address of the relay", EnvVars: []string{"CROC_RELAY6"}}, @@ -177,6 +178,7 @@ func send(c *cli.Context) (err error) { Stdout: c.Bool("stdout"), DisableLocal: c.Bool("no-local"), OnlyLocal: c.Bool("local"), + IgnoreStdin: c.Bool("ignoreStdin"), RelayPorts: strings.Split(c.String("ports"), ","), Ask: c.Bool("ask"), NoMultiplexing: c.Bool("no-multi"), @@ -217,7 +219,7 @@ func send(c *cli.Context) (err error) { var fnames []string stat, _ := os.Stdin.Stat() - if (stat.Mode() & os.ModeCharDevice) == 0 { + if ((stat.Mode() & os.ModeCharDevice) == 0) && !c.Bool("ignoreStdin") { fnames, err = getStdin() if err != nil { return diff --git a/src/croc/croc.go b/src/croc/croc.go index 03f4783c..c556582b 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -61,6 +61,7 @@ type Options struct { NoMultiplexing bool DisableLocal bool OnlyLocal bool + IgnoreStdin bool Ask bool SendingText bool NoCompress bool From 90eda5639fd1a561c64ebf8c27e2044f5e2b57e2 Mon Sep 17 00:00:00 2001 From: Spaceface16518 Date: Wed, 27 Jan 2021 12:30:45 -0600 Subject: [PATCH 2/3] Strip go binary in docker build --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 08917ed6..3595f90b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM golang:1.15-alpine as builder RUN apk add --no-cache git WORKDIR /go/croc COPY . . -RUN go build -v +RUN go build -v -ldflags="-s -w" FROM alpine:latest EXPOSE 9009 From 7f5d704a264eb114412dbf184056cdd3484a4c9e Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Mon, 1 Feb 2021 06:58:27 -0800 Subject: [PATCH 3/3] change name --- src/cli/cli.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cli/cli.go b/src/cli/cli.go index 23914018..4473d171 100644 --- a/src/cli/cli.go +++ b/src/cli/cli.go @@ -85,7 +85,7 @@ func Run() (err error) { &cli.BoolFlag{Name: "no-compress", Usage: "disable compression"}, &cli.BoolFlag{Name: "ask", Usage: "make sure sender and recipient are prompted"}, &cli.BoolFlag{Name: "local", Usage: "force to use only local connections"}, - &cli.BoolFlag{Name: "ignoreStdin", Usage: "ignore piped stdin"}, + &cli.BoolFlag{Name: "ignore-stdin", Usage: "ignore piped stdin"}, &cli.StringFlag{Name: "ip", Value: "", Usage: "set sender ip if known e.g. 10.0.0.1:9009, [::1]:9009"}, &cli.StringFlag{Name: "relay", Value: models.DEFAULT_RELAY, Usage: "address of the relay", EnvVars: []string{"CROC_RELAY"}}, &cli.StringFlag{Name: "relay6", Value: models.DEFAULT_RELAY6, Usage: "ipv6 address of the relay", EnvVars: []string{"CROC_RELAY6"}}, @@ -178,7 +178,7 @@ func send(c *cli.Context) (err error) { Stdout: c.Bool("stdout"), DisableLocal: c.Bool("no-local"), OnlyLocal: c.Bool("local"), - IgnoreStdin: c.Bool("ignoreStdin"), + IgnoreStdin: c.Bool("ignore-stdin"), RelayPorts: strings.Split(c.String("ports"), ","), Ask: c.Bool("ask"), NoMultiplexing: c.Bool("no-multi"), @@ -219,7 +219,7 @@ func send(c *cli.Context) (err error) { var fnames []string stat, _ := os.Stdin.Stat() - if ((stat.Mode() & os.ModeCharDevice) == 0) && !c.Bool("ignoreStdin") { + if ((stat.Mode() & os.ModeCharDevice) == 0) && !c.Bool("ignore-stdin") { fnames, err = getStdin() if err != nil { return