/*
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
"os"
"strings"
- "go.cypherpunks.ru/nncp/v7"
+ "go.cypherpunks.ru/nncp/v8"
)
func usage() {
os.Args[0], nncp.AreaDir)
flag.PrintDefaults()
fmt.Fprint(os.Stderr, `
-If SRC equals to -, then read data from stdin to temporary file.
+If SRC equals to "-", then data is read from stdin.
+If SRC is directory, then create pax archive with its contents.
-minsize/-chunked take NODE's freq.minsize/freq.chunked configuration
options by default. You can forcefully turn them off by specifying 0 value.
cfgPath = flag.String("cfg", nncp.DefaultCfgPath, "Path to configuration file")
niceRaw = flag.String("nice", nncp.NicenessFmt(nncp.DefaultNiceFile), "Outbound packet niceness")
argMinSize = flag.Int64("minsize", -1, "Minimal required resulting packet size, in KiB")
+ argMaxSize = flag.Uint64("maxsize", 0, "Maximal allowable resulting packets size, in KiB")
argChunkSize = flag.Int64("chunked", -1, "Split file on specified size chunks, in KiB")
viaOverride = flag.String("via", "", "Override Via path to destination node")
spoolPath = flag.String("spool", "", "Override path to spool")
nncp.ViaOverride(*viaOverride, ctx, node)
ctx.Umask()
+ var chunkSize int64
+ if *argChunkSize < 0 {
+ chunkSize = node.FreqChunked
+ } else if *argChunkSize > 0 {
+ chunkSize = *argChunkSize * 1024
+ }
+
var minSize int64
if *argMinSize < 0 {
minSize = node.FreqMinSize
minSize = *argMinSize * 1024
}
- var chunkSize int64
- if *argChunkSize < 0 {
- chunkSize = node.FreqChunked
- } else if *argChunkSize > 0 {
- chunkSize = *argChunkSize * 1024
- }
- if chunkSize == 0 {
- chunkSize = nncp.MaxFileSize
+ maxSize := int64(nncp.MaxFileSize)
+ if *argMaxSize > 0 {
+ maxSize = int64(*argMaxSize) * 1024
}
if err = ctx.TxFile(
strings.Join(splitted, ":"),
chunkSize,
minSize,
- nncp.MaxFileSize,
+ maxSize,
areaId,
); err != nil {
log.Fatalln(err)