X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcmd%2Fnncp-reass%2Fmain.go;h=0882d285c597262f637e7b9bbc3c6d53f44da201;hb=0367cce2741e1ce6a89a49fd5c4e9df6005c9744;hp=4ed30a57af7f29e50080777092d1bd00b48cde2a;hpb=5a9bf58a2638e42f2d42fa4d43c363a664fe8198;p=nncp.git diff --git a/src/cmd/nncp-reass/main.go b/src/cmd/nncp-reass/main.go index 4ed30a5..0882d28 100644 --- a/src/cmd/nncp-reass/main.go +++ b/src/cmd/nncp-reass/main.go @@ -1,6 +1,6 @@ /* NNCP -- Node to Node copy, utilities for store-and-forward data exchange -Copyright (C) 2016-2021 Sergey Matveev +Copyright (C) 2016-2022 Sergey Matveev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -35,8 +35,7 @@ import ( xdr "github.com/davecgh/go-xdr/xdr2" "github.com/dustin/go-humanize" - "go.cypherpunks.ru/nncp/v6" - "golang.org/x/crypto/blake2b" + "go.cypherpunks.ru/nncp/v8" ) func usage() { @@ -67,8 +66,12 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo }) return false } - fd.Close() // #nosec G104 - if metaPkt.Magic != nncp.MagicNNCPMv1 { + fd.Close() + if metaPkt.Magic == nncp.MagicNNCPMv1.B { + ctx.LogE("reass", les, nncp.MagicNNCPMv1.TooOld(), logMsg) + return false + } + if metaPkt.Magic != nncp.MagicNNCPMv2.B { ctx.LogE("reass", les, nncp.BadMagic, logMsg) return false } @@ -152,10 +155,7 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo if err != nil { log.Fatalln("Can not stat file:", err) } - hsh, err = blake2b.New256(nil) - if err != nil { - log.Fatalln(err) - } + hsh = nncp.MTHNew(fi.Size(), 0) if _, err = nncp.CopyProgressed( hsh, bufio.NewReader(fd), "check", nncp.LEs{{K: "Pkt", V: chunkPath}, {K: "FullSize", V: fi.Size()}}, @@ -163,7 +163,7 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo ); err != nil { log.Fatalln(err) } - fd.Close() // #nosec G104 + fd.Close() if bytes.Compare(hsh.Sum(nil), metaPkt.Checksums[chunkNum][:]) != 0 { ctx.LogE( "reass-chunk", @@ -219,7 +219,7 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo ); err != nil { log.Fatalln(err) } - fd.Close() // #nosec G104 + fd.Close() if !keep { if err = os.Remove(chunkPath); err != nil { ctx.LogE( @@ -298,7 +298,7 @@ func findMetas(ctx *nncp.Ctx, dirPath string) []string { return nil } fis, err := dir.Readdir(0) - dir.Close() // #nosec G104 + dir.Close() if err != nil { ctx.LogE("reass", nncp.LEs{{K: "Path", V: dirPath}}, err, logMsg) return nil @@ -330,6 +330,7 @@ func main() { version = flag.Bool("version", false, "Print version information") warranty = flag.Bool("warranty", false, "Print warranty information") ) + log.SetFlags(log.Lshortfile) flag.Usage = usage flag.Parse() if *warranty {