From c6bcb79928d17167b0cfe7eb9e0961565c0fd065 Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Thu, 7 Jul 2022 10:32:23 -0700 Subject: [PATCH] remove zip compression and add --zip to send command --- src/cli/cli.go | 2 +- src/utils/utils.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cli/cli.go b/src/cli/cli.go index 0a39dcf..a12b1e2 100644 --- a/src/cli/cli.go +++ b/src/cli/cli.go @@ -61,6 +61,7 @@ func Run() (err error) { Description: "send file(s), or folder, over the relay", ArgsUsage: "[filename(s) or folder]", Flags: []cli.Flag{ + &cli.BoolFlag{Name: "zip", Usage: "zip folder before sending"}, &cli.StringFlag{Name: "code", Aliases: []string{"c"}, Usage: "codephrase used to connect to relay"}, &cli.StringFlag{Name: "hash", Value: "xxhash", Usage: "hash algorithm (xxhash, imohash, md5)"}, &cli.StringFlag{Name: "text", Aliases: []string{"t"}, Usage: "send some text"}, @@ -94,7 +95,6 @@ func Run() (err error) { &cli.BoolFlag{Name: "local", Usage: "force to use only local connections"}, &cli.BoolFlag{Name: "ignore-stdin", Usage: "ignore piped stdin"}, &cli.BoolFlag{Name: "overwrite", Usage: "do not prompt to overwrite"}, - &cli.BoolFlag{Name: "zip", Usage: "zip folder if specified"}, &cli.StringFlag{Name: "curve", Value: "p256", Usage: "choose an encryption curve (" + strings.Join(pake.AvailableCurves(), ", ") + ")"}, &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"}}, diff --git a/src/utils/utils.go b/src/utils/utils.go index 9dce321..1cc6001 100644 --- a/src/utils/utils.go +++ b/src/utils/utils.go @@ -4,6 +4,7 @@ import ( "archive/zip" "bufio" "bytes" + "compress/flate" "crypto/md5" "crypto/rand" "crypto/sha256" @@ -383,6 +384,10 @@ func ZipDirectory(destination string, source string) (err error) { } defer file.Close() writer := zip.NewWriter(file) + // no compression because croc does its compression on the fly + writer.RegisterCompressor(zip.Deflate, func(out io.Writer) (io.WriteCloser, error) { + return flate.NewWriter(out, flate.NoCompression) + }) defer writer.Close() err = filepath.Walk(source, func(path string, info os.FileInfo, err error) error { if err != nil {