X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcmd%2Fnncp-ack%2Fmain.go;h=18a6f4be359e26bb9be55b5394b982c0fbc5bb31;hb=2e22bda93fdf8f2f84e4d19b3f1d46318b497139;hp=d7e8f0185697ba364298f1d5aba10535c46ac6cc;hpb=e523d3daf5cfcda8f0dc51e7003987c7fe693195;p=nncp.git diff --git a/src/cmd/nncp-ack/main.go b/src/cmd/nncp-ack/main.go index d7e8f01..18a6f4b 100644 --- a/src/cmd/nncp-ack/main.go +++ b/src/cmd/nncp-ack/main.go @@ -1,6 +1,6 @@ /* NNCP -- Node to Node copy, utilities for store-and-forward data exchange -Copyright (C) 2016-2022 Sergey Matveev +Copyright (C) 2016-2023 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 @@ -34,8 +34,7 @@ import ( ) func usage() { - fmt.Fprintf(os.Stderr, nncp.UsageHeader()) - fmt.Fprintf(os.Stderr, "nncp-ack -- send packet receipt acknowledgement\n\n") + fmt.Fprint(os.Stderr, "nncp-ack -- send packet receipt acknowledgement\n\n") fmt.Fprintf(os.Stderr, "Usage: %s [options] -all\n", os.Args[0]) fmt.Fprintf(os.Stderr, "Usage: %s [options] -node NODE[,...]\n", os.Args[0]) fmt.Fprintf(os.Stderr, "Usage: %s [options] -node NODE -pkt PKT\n", os.Args[0]) @@ -45,9 +44,10 @@ func usage() { func main() { var ( - cfgPath = flag.String("cfg", nncp.DefaultCfgPath, "Path to configuration file") - niceRaw = flag.String("nice", nncp.NicenessFmt(nncp.DefaultNiceFreq), "Outbound packet niceness") - minSizeRaw = flag.Uint64("minsize", 0, "Minimal required resulting packet size, in KiB") + cfgPath = flag.String("cfg", nncp.DefaultCfgPath, "Path to configuration file") + niceRaw = flag.String("nice", nncp.NicenessFmt(nncp.DefaultNiceFreq), + "Outbound packet niceness") + minSizeRaw = flag.Int64("minsize", -1, "Minimal required resulting packet size, in KiB") viaOverride = flag.String("via", "", "Override Via path to destination node (ignored with -all)") spoolPath = flag.String("spool", "", "Override path to spool") logPath = flag.String("log", "", "Override path to logfile") @@ -94,7 +94,6 @@ func main() { } ctx.Umask() - minSize := int64(*minSizeRaw) * 1024 var nodes []*nncp.Node if *nodesRaw != "" { @@ -130,6 +129,14 @@ func main() { os.Exit(1) } nncp.ViaOverride(*viaOverride, ctx, nodes[0]) + + var minSize int64 + if *minSizeRaw < 0 { + minSize = nodes[0].ACKMinSize + } else if *minSizeRaw > 0 { + minSize = *minSizeRaw * 1024 + } + pktName, err := ctx.TxACK(nodes[0], nice, *pktRaw, minSize) if err != nil { log.Fatalln(err) @@ -140,6 +147,12 @@ func main() { isBad := false for _, node := range nodes { + var minSize int64 + if *minSizeRaw < 0 { + minSize = node.ACKMinSize + } else if *minSizeRaw > 0 { + minSize = *minSizeRaw * 1024 + } for job := range ctx.Jobs(node.Id, nncp.TRx) { pktName := filepath.Base(job.Path) sender := ctx.Neigh[*job.PktEnc.Sender] @@ -206,7 +219,12 @@ func main() { continue } pipeR, pipeW := io.Pipe() - go nncp.PktEncRead(ctx.Self, ctx.Neigh, bufio.NewReader(fd), pipeW, true, nil) + go nncp.PktEncRead( + ctx.Self, + ctx.Neigh, + bufio.NewReaderSize(fd, nncp.MTHBlockSize), + pipeW, true, nil, + ) var pkt nncp.Pkt _, err = xdr.Unmarshal(pipeR, &pkt) fd.Close()