diff --git a/src/cli/cli.go b/src/cli/cli.go index 8e03def9..1059dbfa 100644 --- a/src/cli/cli.go +++ b/src/cli/cli.go @@ -84,6 +84,7 @@ func Run() { cli.StringFlag{Name: "port", Value: "8153", Usage: "port that the websocket listens on"}, cli.StringFlag{Name: "tcp-port", Value: "8154,8155,8156,8157,8158,8159,8160,8161", Usage: "ports that the tcp server listens on"}, cli.StringFlag{Name: "curve", Value: "siec", Usage: "specify elliptic curve to use for PAKE (p256, p384, p521, siec)"}, + cli.StringFlag{Name: "out", Value: ".", Usage: "specify an output folder to receive the file"}, } app.EnableBashCompletion = true app.HideHelp = false @@ -203,6 +204,9 @@ func receive(c *cli.Context) error { if c.Args().First() != "" { cr.Codephrase = c.Args().First() } + if c.GlobalString("out") != "" { + os.Chdir(c.GlobalString("out")) + } cr.LoadConfig() openFolder := false if len(os.Args) == 1 { diff --git a/src/croc/sender.go b/src/croc/sender.go index f4b898c9..bea4a441 100644 --- a/src/croc/sender.go +++ b/src/croc/sender.go @@ -34,6 +34,7 @@ func (cr *Croc) startSender(forceSend int, serverAddress string, tcpPorts []stri log.Debugf("sending %s", fname) err := cr.send(forceSend, serverAddress, tcpPorts, isLocal, c, fname, codephrase, useCompression, useEncryption) if err != nil { + log.Debug(err) if !strings.HasPrefix(err.Error(), "websocket: close 100") { fmt.Fprintf(os.Stderr, "\n"+err.Error()) err = errors.Wrap(err, "error in sender:") diff --git a/src/croc/sending.go b/src/croc/sending.go index 86c2e142..1e2834fb 100644 --- a/src/croc/sending.go +++ b/src/croc/sending.go @@ -153,6 +153,7 @@ func (c *Croc) sendReceive(address, websocketPort string, tcpPorts []string, fna log.Debugf("connecting to %s", websocketAddress) sock, _, err := websocket.DefaultDialer.Dial(websocketAddress, nil) if err != nil { + log.Error(err) return } defer sock.Close() @@ -160,6 +161,7 @@ func (c *Croc) sendReceive(address, websocketPort string, tcpPorts []string, fna // tell the websockets we are connected err = sock.WriteMessage(websocket.BinaryMessage, []byte("connected")) if err != nil { + log.Error(err) return err } @@ -172,6 +174,7 @@ func (c *Croc) sendReceive(address, websocketPort string, tcpPorts []string, fna for { select { case <-done: + log.Debug("received done signal") return nil case <-interrupt: if !c.Debug {