debug = flag.Bool("debug", false, "Print debug messages")
version = flag.Bool("version", false, "Print version information")
warranty = flag.Bool("warranty", false, "Print warranty information")
-
- autotoss = flag.Bool("autotoss", false, "Toss after call is finished")
- autotossDoSeen = flag.Bool("autotoss-seen", false, "Create .seen files during tossing")
- autotossNoFile = flag.Bool("autotoss-nofile", false, "Do not process \"file\" packets during tossing")
- autotossNoFreq = flag.Bool("autotoss-nofreq", false, "Do not process \"freq\" packets during tossing")
- autotossNoExec = flag.Bool("autotoss-noexec", false, "Do not process \"exec\" packets during tossing")
- autotossNoTrns = flag.Bool("autotoss-notrns", false, "Do not process \"trns\" packets during tossing")
)
flag.Usage = usage
flag.Parse()
} else {
node.Busy = true
node.Unlock()
+
+ var autoTossFinish chan struct{}
+ var autoTossBadCode chan bool
+ if call.AutoToss {
+ autoTossFinish, autoTossBadCode = ctx.AutoToss(
+ node.Id,
+ call.Nice,
+ call.AutoTossDoSeen,
+ call.AutoTossNoFile,
+ call.AutoTossNoFreq,
+ call.AutoTossNoExec,
+ call.AutoTossNoTrns,
+ )
+ }
+
ctx.CallNode(
node,
addrs,
false,
nil,
)
- if *autotoss {
- ctx.Toss(
- node.Id,
- call.Nice,
- false,
- *autotossDoSeen,
- *autotossNoFile,
- *autotossNoFreq,
- *autotossNoExec,
- *autotossNoTrns,
- )
+
+ if call.AutoToss {
+ close(autoTossFinish)
+ <-autoTossBadCode
}
node.Lock()