/*
NNCP -- Node to Node copy, utilities for store-and-forward data exchange
-Copyright (C) 2016-2021 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2016-2022 Sergey Matveev <stargrave@stargrave.org>
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
}()
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())
}
ctx.LogI("tx-area", les, logMsg)
}
- return lastNode, finalSize, err
+ return lastNode, payloadSize, err
}
type DummyCloser struct{}
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 {
}
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),
}
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),
}
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),
}
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,
)
}
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)),
)
}