]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/cmd/nncp-toss/main.go
Multicast areas
[nncp.git] / src / cmd / nncp-toss / main.go
index 0722c5ea0f702e0e9f15cfb4a8d4b76ddcd8b32a..af3a59d9bd8a144b08fa402dbaf99e755f39510f 100644 (file)
@@ -25,7 +25,7 @@ import (
        "os"
        "time"
 
-       "go.cypherpunks.ru/nncp/v5"
+       "go.cypherpunks.ru/nncp/v7"
 )
 
 func usage() {
@@ -43,10 +43,11 @@ func main() {
                dryRun    = flag.Bool("dryrun", false, "Do not actually write any tossed data")
                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 packets with type: file")
-               noFreq    = flag.Bool("nofreq", false, "Do not process packets with type: freq")
-               noExec    = flag.Bool("noexec", false, "Do not process packets with type: exec")
-               noTrns    = flag.Bool("notrns", false, "Do not process packets with type: transitional")
+               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")
                spoolPath = flag.String("spool", "", "Override path to spool")
                logPath   = flag.String("log", "", "Override path to logfile")
                quiet     = flag.Bool("quiet", false, "Print only errors")
@@ -56,6 +57,7 @@ func main() {
                version   = flag.Bool("version", false, "Print version information")
                warranty  = flag.Bool("warranty", false, "Print warranty information")
        )
+       log.SetFlags(log.Lshortfile)
        flag.Usage = usage
        flag.Parse()
        if *warranty {
@@ -105,14 +107,18 @@ Cycle:
                }
                isBad = ctx.Toss(
                        node.Id,
+                       nncp.TRx,
                        nice,
-                       *dryRun,
-                       *doSeen,
-                       *noFile,
-                       *noFreq,
-                       *noExec,
-                       *noTrns,
-               )
+                       *dryRun, *doSeen, *noFile, *noFreq, *noExec, *noTrns, *noArea,
+               ) || isBad
+               if nodeId == *ctx.SelfId {
+                       isBad = ctx.Toss(
+                               node.Id,
+                               nncp.TTx,
+                               nice,
+                               *dryRun, false, true, true, true, true, *noArea,
+                       ) || isBad
+               }
        }
        if *cycle > 0 {
                time.Sleep(time.Duration(*cycle) * time.Second)