/*
NNCP -- Node to Node copy, utilities for store-and-forward data exchange
-Copyright (C) 2016-2022 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2016-2023 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
)
func usage() {
- fmt.Fprintf(os.Stderr, nncp.UsageHeader())
- fmt.Fprintf(os.Stderr, "nncp-daemon -- TCP daemon\n\n")
+ fmt.Fprint(os.Stderr, "nncp-daemon -- TCP daemon\n\n")
fmt.Fprintf(os.Stderr, "Usage: %s [options]\nOptions:\n", os.Args[0])
flag.PrintDefaults()
}
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")
autoTossNoArea = flag.Bool("autotoss-noarea", false, "Do not process \"area\" packets during tossing")
+ autoTossNoACK = flag.Bool("autotoss-noack", false, "Do not process \"ack\" packets during tossing")
)
log.SetFlags(log.Lshortfile)
flag.Usage = usage
if *autoToss && nodeId != nil {
autoTossFinish, autoTossBadCode = ctx.AutoToss(
nodeId,
- nice,
- *autoTossDoSeen,
- *autoTossNoFile,
- *autoTossNoFreq,
- *autoTossNoExec,
- *autoTossNoTrns,
- *autoTossNoArea,
+ &nncp.TossOpts{
+ Nice: nice,
+ DoSeen: *autoTossDoSeen,
+ NoFile: *autoTossNoFile,
+ NoFreq: *autoTossNoFreq,
+ NoExec: *autoTossNoExec,
+ NoTrns: *autoTossNoTrns,
+ NoArea: *autoTossNoArea,
+ NoACK: *autoTossNoACK,
+ },
)
}
<-nodeIdC // call completion
- if *autoToss {
+ if *autoToss && nodeId != nil {
close(autoTossFinish)
<-autoTossBadCode
}
if *autoToss && nodeId != nil {
autoTossFinish, autoTossBadCode = ctx.AutoToss(
nodeId,
- nice,
- *autoTossDoSeen,
- *autoTossNoFile,
- *autoTossNoFreq,
- *autoTossNoExec,
- *autoTossNoTrns,
- *autoTossNoArea,
+ &nncp.TossOpts{
+ Nice: nice,
+ DoSeen: *autoTossDoSeen,
+ NoFile: *autoTossNoFile,
+ NoFreq: *autoTossNoFreq,
+ NoExec: *autoTossNoExec,
+ NoTrns: *autoTossNoTrns,
+ NoArea: *autoTossNoArea,
+ NoACK: *autoTossNoACK,
+ },
)
}
<-nodeIdC // call completion
- if *autoToss {
+ if *autoToss && nodeId != nil {
close(autoTossFinish)
<-autoTossBadCode
}