]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/toss.go
Replace zlib with zstd
[nncp.git] / src / toss.go
index 2c4726f8cb7dc7fc2e94334fe8b97c1d3363eac6..0ce446ac807b39df6e6a067a2745b0631101ede2 100644 (file)
@@ -20,7 +20,6 @@ package nncp
 import (
        "bufio"
        "bytes"
-       "compress/zlib"
        "fmt"
        "io"
        "io/ioutil"
@@ -35,6 +34,7 @@ import (
 
        "github.com/davecgh/go-xdr/xdr2"
        "github.com/dustin/go-humanize"
+       "github.com/klauspost/compress/zstd"
        "golang.org/x/crypto/blake2b"
        "golang.org/x/crypto/poly1305"
 )
@@ -58,6 +58,11 @@ func (ctx *Ctx) Toss(
        dryRun, doSeen, noFile, noFreq, noExec, noTrns bool,
 ) bool {
        isBad := false
+       decompressor, err := zstd.NewReader(nil)
+       if err != nil {
+               panic(err)
+       }
+       defer decompressor.Close()
        for job := range ctx.Jobs(nodeId, TRx) {
                pktName := filepath.Base(job.Fd.Name())
                sds := SDS{"node": job.PktEnc.Sender, "pkt": pktName}
@@ -117,10 +122,6 @@ func (ctx *Ctx) Toss(
                                "type": "exec",
                                "dst":  strings.Join(append([]string{handle}, args...), " "),
                        })
-                       decompressor, err := zlib.NewReader(pipeR)
-                       if err != nil {
-                               log.Fatalln(err)
-                       }
                        sender := ctx.Neigh[*job.PktEnc.Sender]
                        cmdline, exists := sender.Exec[handle]
                        if !exists || len(cmdline) == 0 {
@@ -128,6 +129,9 @@ func (ctx *Ctx) Toss(
                                isBad = true
                                goto Closing
                        }
+                       if err = decompressor.Reset(pipeR); err != nil {
+                               log.Fatalln(err)
+                       }
                        if !dryRun {
                                cmd := exec.Command(
                                        cmdline[0],