cron: "*/1 * * * MON-FRI"
onlinedeadline: 3600
nice: PRIORITY+10
+
+ autotoss: true
+ autotoss-doseen: true
},
{
cron: "30 * * * SAT,SUN"
Optional. Override @ref{CfgMaxOnlineTime, @emph{maxonlinetime}}
configuration option when calling.
+@item autotoss, -doseen, -nofile, -nofreq, -noexec, -notrns
+Optionally enable auto tossing: run tosser on node's spool every second
+during the call. You can control either are @file{.seen} files must be
+created, or skip any kind of packet processing.
+
@end table
@option{-autotoss*} опции запускают tosser не после завершения вызова, а
во время него ежесекундно.
+@item
+В @option{calls} секции конфигурации появились опции
+@option{autotoss}, @option{autotoss-doseen},
+@option{autotoss-nofile}, @option{autotoss-nofreq},
+@option{autotoss-noexec}, @option{autotoss-notrns}.
+Вы можете настраивать опции автоматического tosser для каждого вызова.
+
@end itemize
@node Релиз 5.5.1
@option{-autotoss*} option runs tosser not after the call, but every
second while it is active.
+@item
+@option{autotoss}, @option{autotoss-doseen},
+@option{autotoss-nofile}, @option{autotoss-nofreq},
+@option{autotoss-noexec}, @option{autotoss-notrns} options available in
+@option{calls} configuration section. You can configure per-call
+automatic tosser options.
+
@end itemize
@node Release 5.5.1
Addr *string
OnlineDeadline time.Duration
MaxOnlineTime time.Duration
+
+ AutoToss bool
+ AutoTossDoSeen bool
+ AutoTossNoFile bool
+ AutoTossNoFreq bool
+ AutoTossNoExec bool
+ AutoTossNoTrns bool
}
func (ctx *Ctx) CallNode(
Addr *string `json:"addr,omitempty"`
OnlineDeadline *uint `json:"onlinedeadline,omitempty"`
MaxOnlineTime *uint `json:"maxonlinetime,omitempty"`
+
+ AutoToss *bool `json:"autotoss,omitempty"`
+ AutoTossDoSeen *bool `json:"autotoss-doseen,omitempty"`
+ AutoTossNoFile *bool `json:"autotoss-nofile,omitempty"`
+ AutoTossNoFreq *bool `json:"autotoss-nofreq,omitempty"`
+ AutoTossNoExec *bool `json:"autotoss-noexec,omitempty"`
+ AutoTossNoTrns *bool `json:"autotoss-notrns,omitempty"`
}
type NodeOurJSON struct {
onlineDeadline = time.Duration(*callCfg.OnlineDeadline) * time.Second
}
- var maxOnlineTime time.Duration
- if callCfg.MaxOnlineTime != nil {
- maxOnlineTime = time.Duration(*callCfg.MaxOnlineTime) * time.Second
- }
-
- calls = append(calls, &Call{
+ call := Call{
Cron: expr,
Nice: nice,
Xx: xx,
TxRate: txRate,
Addr: addr,
OnlineDeadline: onlineDeadline,
- MaxOnlineTime: maxOnlineTime,
- })
+ }
+
+ if callCfg.MaxOnlineTime != nil {
+ call.MaxOnlineTime = time.Duration(*callCfg.MaxOnlineTime) * time.Second
+ }
+ if callCfg.AutoToss != nil {
+ call.AutoToss = *callCfg.AutoToss
+ }
+ if callCfg.AutoTossDoSeen != nil {
+ call.AutoTossDoSeen = *callCfg.AutoTossDoSeen
+ }
+ if callCfg.AutoTossNoFile != nil {
+ call.AutoTossNoFile = *callCfg.AutoTossNoFile
+ }
+ if callCfg.AutoTossNoFreq != nil {
+ call.AutoTossNoFreq = *callCfg.AutoTossNoFreq
+ }
+ if callCfg.AutoTossNoExec != nil {
+ call.AutoTossNoExec = *callCfg.AutoTossNoExec
+ }
+ if callCfg.AutoTossNoTrns != nil {
+ call.AutoTossNoTrns = *callCfg.AutoTossNoTrns
+ }
+
+ calls = append(calls, &call)
}
node := Node{
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()
var autoTossFinish chan struct{}
var autoTossBadCode chan bool
- if *autoToss {
+ if call.AutoToss {
autoTossFinish, autoTossBadCode = ctx.AutoToss(
node.Id,
call.Nice,
- *autoTossDoSeen,
- *autoTossNoFile,
- *autoTossNoFreq,
- *autoTossNoExec,
- *autoTossNoTrns,
+ call.AutoTossDoSeen,
+ call.AutoTossNoFile,
+ call.AutoTossNoFreq,
+ call.AutoTossNoExec,
+ call.AutoTossNoTrns,
)
}
nil,
)
- if *autoToss {
+ if call.AutoToss {
close(autoTossFinish)
<-autoTossBadCode
}
# # txrate: 20
# # xx: rx
# # addr: lan
+ # #
+ # # autotoss: false
+ # # autotoss-doseen: true
+ # # autotoss-nofile: true
+ # # autotoss-nofreq: true
+ # # autotoss-noexec: true
+ # # autotoss-notrns: true
# # },
# # ]
# }