import (
"net"
+ "time"
"github.com/gorhill/cronexpr"
)
TxRate int
Addr *string
OnlineDeadline uint
- MaxOnlineTime uint
+ MaxOnlineTime time.Duration
}
func (ctx *Ctx) CallNode(
nice uint8,
xxOnly TRxTx,
rxRate, txRate int,
- onlineDeadline, maxOnlineTime uint,
+ onlineDeadline uint,
+ maxOnlineTime time.Duration,
listOnly bool,
onlyPkts map[[32]byte]bool,
) (isGood bool) {
"os"
"path"
"strconv"
+ "time"
"github.com/gorhill/cronexpr"
"github.com/hjson/hjson-go"
}
defOnlineDeadline = *cfg.OnlineDeadline
}
- var defMaxOnlineTime uint
- if yml.MaxOnlineTime != nil {
- defMaxOnlineTime = *yml.MaxOnlineTime
+ var defMaxOnlineTime time.Duration
+ if cfg.MaxOnlineTime != nil {
+ defMaxOnlineTime = time.Duration(*cfg.MaxOnlineTime) * time.Second
}
var calls []*Call
onlineDeadline = *callCfg.OnlineDeadline
}
- var maxOnlineTime uint
+ var maxOnlineTime time.Duration
if callCfg.MaxOnlineTime != nil {
- maxOnlineTime = *callCfg.MaxOnlineTime
+ maxOnlineTime = time.Duration(*callCfg.MaxOnlineTime) * time.Second
}
calls = append(calls, &Call{
"log"
"os"
"strings"
+ "time"
"go.cypherpunks.ru/nncp/v5"
)
version = flag.Bool("version", false, "Print version information")
warranty = flag.Bool("warranty", false, "Print warranty information")
- onlineDeadline = flag.Uint("onlinedeadline", 0, "Override onlinedeadline option")
- maxOnlineTime = flag.Uint("maxonlinetime", 0, "Override maxonlinetime option")
+ onlineDeadline = flag.Uint("onlinedeadline", 0, "Override onlinedeadline option")
+ maxOnlineTimeSec = flag.Uint("maxonlinetime", 0, "Override maxonlinetime option")
)
flag.Usage = usage
flag.Parse()
if *onlineDeadline == 0 {
onlineDeadline = &node.OnlineDeadline
}
- if *maxOnlineTime == 0 {
- maxOnlineTime = &node.MaxOnlineTime
+ var maxOnlineTime time.Duration
+ if *maxOnlineTimeSec == 0 {
+ maxOnlineTime = node.MaxOnlineTime
+ } else {
+ maxOnlineTime = time.Duration(*maxOnlineTimeSec) * time.Second
}
var xxOnly nncp.TRxTx
*rxRate,
*txRate,
*onlineDeadline,
- *maxOnlineTime,
+ maxOnlineTime,
*listOnly,
onlyPkts,
) {
"crypto/rand"
"errors"
"sync"
+ "time"
"github.com/flynn/noise"
"golang.org/x/crypto/blake2b"
RxRate int
TxRate int
OnlineDeadline uint
- MaxOnlineTime uint
+ MaxOnlineTime time.Duration
Calls []*Call
Busy bool
Node *Node
Nice uint8
onlineDeadline uint
- maxOnlineTime uint
+ maxOnlineTime time.Duration
hs *noise.HandshakeState
csOur *noise.CipherState
csTheir *noise.CipherState
default:
}
now := time.Now()
- if state.maxOnlineTime > 0 && state.started.Add(time.Duration(state.maxOnlineTime)*time.Second).Before(now) {
+ if state.maxOnlineTime > 0 && state.started.Add(state.maxOnlineTime).Before(now) {
return true
}
return uint(now.Sub(state.RxLastSeen).Seconds()) >= state.onlineDeadline &&