From 93a3ec70e7d18fa31fbb71e25b0d0fab9cb3d809 Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Fri, 12 Apr 2019 12:15:09 -0700 Subject: [PATCH] handle errors from peer --- main.go | 3 ++- src/croc/croc.go | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index 46ecd7f3..d283215c 100644 --- a/main.go +++ b/main.go @@ -2,6 +2,7 @@ package main import ( "flag" + "fmt" "github.com/schollz/croc/v5/src/croc" ) @@ -43,6 +44,6 @@ func main() { err = c.Receive() } if err != nil { - panic(err) + fmt.Println(err) } } diff --git a/src/croc/croc.go b/src/croc/croc.go index 27927d4a..f5c9f413 100644 --- a/src/croc/croc.go +++ b/src/croc/croc.go @@ -392,6 +392,11 @@ func (c *Client) processMessage(m Message) (err error) { c.log.Debug(c.Pake.SessionKey()) c.Step1ChannelSecured = true } + case "error": + c.spinner.Stop() + fmt.Print("\r") + err = fmt.Errorf("peer error: %s", m.Message) + return err case "fileinfo": var senderInfo SenderInfo var decryptedBytes []byte @@ -417,7 +422,13 @@ func (c *Client) processMessage(m Message) (err error) { } c.spinner.Stop() fmt.Fprintf(os.Stderr, "\rAccept %s (%s) from machine '%s'? (y/n) ", fname, utils.ByteCountDecimal(totalSize), senderInfo.MachineID) - utils.GetInput("") + if strings.ToLower(strings.TrimSpace(utils.GetInput(""))) != "y" { + err = c.redisdb.Publish(c.nameOutChannel, Message{ + Type: "error", + Message: "refusing files", + }.String()).Err() + return fmt.Errorf("refused files") + } // TODO: accept file question? c.log.Debug(c.FilesToTransfer) c.Step2FileInfoTransfered = true