]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/cmd/nncp-toss/main.go
ACK
[nncp.git] / src / cmd / nncp-toss / main.go
index 8497486832746fda54b453822d419cd869b72f35..76bb7653b2e97f177e0313d1005b33b8f3ef9d84 100644 (file)
@@ -1,6 +1,6 @@
 /*
 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
@@ -26,7 +26,7 @@ import (
        "path/filepath"
        "time"
 
-       "go.cypherpunks.ru/nncp/v7"
+       "go.cypherpunks.ru/nncp/v8"
 )
 
 func usage() {
@@ -42,13 +42,14 @@ func main() {
                nodeRaw   = flag.String("node", "", "Process only that node")
                niceRaw   = flag.String("nice", nncp.NicenessFmt(255), "Minimal required niceness")
                dryRun    = flag.Bool("dryrun", false, "Do not actually write any tossed data")
-               doSeen    = flag.Bool("seen", false, "Create .seen files")
+               doSeen    = flag.Bool("seen", false, "Create seen/ files")
                cycle     = flag.Uint("cycle", 0, "Repeat tossing after N seconds in infinite loop")
                noFile    = flag.Bool("nofile", false, "Do not process \"file\" packets")
                noFreq    = flag.Bool("nofreq", false, "Do not process \"freq\" packets")
                noExec    = flag.Bool("noexec", false, "Do not process \"exec\" packets")
                noTrns    = flag.Bool("notrns", false, "Do not process \"transitional\" packets")
                noArea    = flag.Bool("noarea", false, "Do not process \"area\" packets")
+               noACK     = flag.Bool("noack", false, "Do not process \"ack\" packets")
                spoolPath = flag.String("spool", "", "Override path to spool")
                logPath   = flag.String("log", "", "Override path to logfile")
                quiet     = flag.Bool("quiet", false, "Print only errors")
@@ -110,14 +111,14 @@ func main() {
                                node.Id,
                                nncp.TRx,
                                nice,
-                               *dryRun, *doSeen, *noFile, *noFreq, *noExec, *noTrns, *noArea,
+                               *dryRun, *doSeen, *noFile, *noFreq, *noExec, *noTrns, *noArea, *noACK,
                        ) || isBad
                        if nodeId == *ctx.SelfId {
                                isBad = ctx.Toss(
                                        node.Id,
                                        nncp.TTx,
                                        nice,
-                                       *dryRun, false, true, true, true, true, *noArea,
+                                       *dryRun, false, true, true, true, true, *noArea, *noACK,
                                ) || isBad
                        }
                }
@@ -146,19 +147,18 @@ func main() {
                }(node.Id)
        }
        for nodeId := range nodeIds {
+               ctx.Toss(
+                       nodeId,
+                       nncp.TRx,
+                       nice,
+                       *dryRun, *doSeen, *noFile, *noFreq, *noExec, *noTrns, *noArea, *noACK,
+               )
                if *nodeId == *ctx.SelfId {
                        ctx.Toss(
                                nodeId,
                                nncp.TTx,
                                nice,
-                               *dryRun, false, true, true, true, true, *noArea,
-                       )
-               } else {
-                       ctx.Toss(
-                               nodeId,
-                               nncp.TRx,
-                               nice,
-                               *dryRun, *doSeen, *noFile, *noFreq, *noExec, *noTrns, *noArea,
+                               *dryRun, false, true, true, true, true, *noArea, *noACK,
                        )
                }
        }