X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Ftx.go;h=f9da81b03093f6c82d500da82d5f492dfa056f33;hb=5d5c951d8fecf27acbe3895091637a70bf7f7f39;hp=0f7d2b8d9369627d4cbf52eb63b996b5874a22a5;hpb=b47dbfe6687569650fa544a4ecf3e4ea388390cb;p=nncp.git diff --git a/src/tx.go b/src/tx.go index 0f7d2b8..f9da81b 100644 --- a/src/tx.go +++ b/src/tx.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 @@ -200,19 +200,24 @@ func (ctx *Ctx) Tx( }() var pktEncRaw []byte var pktEncMsg []byte + var payloadSize int64 if area != nil { - pktEncMsg = (<-results).pktEncRaw + r := <-results + payloadSize = r.size + pktEncMsg = r.pktEncRaw + wrappers-- } - var finalSize int64 for i := 0; i <= wrappers; i++ { r := <-results if r.err != nil { tmp.Fd.Close() - return nil, 0, err + return nil, 0, r.err } if r.pktEncRaw != nil { - finalSize = r.size pktEncRaw = r.pktEncRaw + if payloadSize == 0 { + payloadSize = r.size + } } } nodePath := filepath.Join(ctx.Spool, lastNode.Id.String()) @@ -261,7 +266,7 @@ func (ctx *Ctx) Tx( } ctx.LogI("tx-area", les, logMsg) } - return lastNode, finalSize, err + return lastNode, payloadSize, err } type DummyCloser struct{} @@ -325,11 +330,11 @@ func prepareTxFile(srcPath string) ( if err != nil { return err } - if info.IsDir() { + if info.Mode().IsDir() { // directory header, PAX record header+contents srcSize += TarBlockSize + 2*TarBlockSize dirs = append(dirs, einfo{path: path, modTime: info.ModTime()}) - } else { + } else if info.Mode().IsRegular() { // file header, PAX record header+contents, file content srcSize += TarBlockSize + 2*TarBlockSize + info.Size() if n := info.Size() % TarBlockSize; n != 0 { @@ -448,7 +453,7 @@ func (ctx *Ctx) TxFile( } logMsg := func(les LEs) string { return fmt.Sprintf( - "File %s (%s) sent to %s:%s", + "File %s (%s) is sent to %s:%s", srcPath, humanize.IBytes(uint64(finalSize)), ctx.NodeName(node.Id), @@ -492,7 +497,7 @@ func (ctx *Ctx) TxFile( } logMsg := func(les LEs) string { return fmt.Sprintf( - "File %s (%s) sent to %s:%s", + "File %s (%s) is sent to %s:%s", srcPath, humanize.IBytes(uint64(size)), ctx.NodeName(node.Id), @@ -553,7 +558,7 @@ func (ctx *Ctx) TxFile( } logMsg := func(les LEs) string { return fmt.Sprintf( - "File %s (%s) sent to %s:%s", + "File %s (%s) is sent to %s:%s", srcPath, humanize.IBytes(uint64(metaPktSize)), ctx.NodeName(node.Id), @@ -599,7 +604,7 @@ func (ctx *Ctx) TxFreq( } logMsg := func(les LEs) string { return fmt.Sprintf( - "File request from %s:%s to %s sent", + "File request from %s:%s to %s is sent", ctx.NodeName(node.Id), srcPath, dstPath, ) @@ -670,7 +675,7 @@ func (ctx *Ctx) TxExec( } logMsg := func(les LEs) string { return fmt.Sprintf( - "Exec sent to %s@%s (%s)", + "Exec is sent to %s@%s (%s)", ctx.NodeName(node.Id), dst, humanize.IBytes(uint64(size)), ) }