From: Sergey Matveev Date: Fri, 20 Dec 2019 20:54:23 +0000 (+0300) Subject: Remove unnecessary Duration*Second calculation X-Git-Tag: v5.3.0^2~4 X-Git-Url: http://www.git.cypherpunks.ru/?a=commitdiff_plain;h=d3a4e4c95bf76308eaa2e05aaf4f8fb4bf3e266c;p=nncp.git Remove unnecessary Duration*Second calculation --- diff --git a/src/call.go b/src/call.go index 727b95f..3395498 100644 --- a/src/call.go +++ b/src/call.go @@ -31,7 +31,7 @@ type Call struct { RxRate int TxRate int Addr *string - OnlineDeadline uint + OnlineDeadline time.Duration MaxOnlineTime time.Duration } @@ -41,8 +41,7 @@ func (ctx *Ctx) CallNode( nice uint8, xxOnly TRxTx, rxRate, txRate int, - onlineDeadline uint, - maxOnlineTime time.Duration, + onlineDeadline, maxOnlineTime time.Duration, listOnly bool, onlyPkts map[[32]byte]bool, ) (isGood bool) { diff --git a/src/cfg.go b/src/cfg.go index 42fa918..f003dcb 100644 --- a/src/cfg.go +++ b/src/cfg.go @@ -195,12 +195,12 @@ func NewNode(name string, cfg NodeJSON) (*Node, error) { defTxRate = *cfg.TxRate } - defOnlineDeadline := uint(DefaultDeadline) + defOnlineDeadline := DefaultDeadline if cfg.OnlineDeadline != nil { if *cfg.OnlineDeadline <= 0 { return nil, errors.New("OnlineDeadline must be at least 1 second") } - defOnlineDeadline = *cfg.OnlineDeadline + defOnlineDeadline = time.Duration(*cfg.OnlineDeadline) * time.Second } var defMaxOnlineTime time.Duration if cfg.MaxOnlineTime != nil { @@ -257,7 +257,7 @@ func NewNode(name string, cfg NodeJSON) (*Node, error) { if *callCfg.OnlineDeadline == 0 { return nil, errors.New("OnlineDeadline must be at least 1 second") } - onlineDeadline = *callCfg.OnlineDeadline + onlineDeadline = time.Duration(*callCfg.OnlineDeadline) * time.Second } var maxOnlineTime time.Duration diff --git a/src/cmd/nncp-call/main.go b/src/cmd/nncp-call/main.go index 7b0a0d8..ae6bffe 100644 --- a/src/cmd/nncp-call/main.go +++ b/src/cmd/nncp-call/main.go @@ -56,8 +56,8 @@ func main() { version = flag.Bool("version", false, "Print version information") warranty = flag.Bool("warranty", false, "Print warranty information") - onlineDeadline = flag.Uint("onlinedeadline", 0, "Override onlinedeadline option") - maxOnlineTimeSec = flag.Uint("maxonlinetime", 0, "Override maxonlinetime option") + onlineDeadlineSec = flag.Uint("onlinedeadline", 0, "Override onlinedeadline option") + maxOnlineTimeSec = flag.Uint("maxonlinetime", 0, "Override maxonlinetime option") ) flag.Usage = usage flag.Parse() @@ -106,13 +106,12 @@ func main() { log.Fatalln("Node does not have online communication capability") } - if *onlineDeadline == 0 { - onlineDeadline = &node.OnlineDeadline + onlineDeadline := node.OnlineDeadline + if *onlineDeadlineSec != 0 { + onlineDeadline = time.Duration(*onlineDeadlineSec) * time.Second } - var maxOnlineTime time.Duration - if *maxOnlineTimeSec == 0 { - maxOnlineTime = node.MaxOnlineTime - } else { + maxOnlineTime := node.MaxOnlineTime + if *maxOnlineTimeSec != 0 { maxOnlineTime = time.Duration(*maxOnlineTimeSec) * time.Second } @@ -161,7 +160,7 @@ func main() { xxOnly, *rxRate, *txRate, - *onlineDeadline, + onlineDeadline, maxOnlineTime, *listOnly, onlyPkts, diff --git a/src/node.go b/src/node.go index e93b8d9..7bfd0ef 100644 --- a/src/node.go +++ b/src/node.go @@ -51,7 +51,7 @@ type Node struct { Addrs map[string]string RxRate int TxRate int - OnlineDeadline uint + OnlineDeadline time.Duration MaxOnlineTime time.Duration Calls []*Call diff --git a/src/sp.go b/src/sp.go index a29fb9d..6388bef 100644 --- a/src/sp.go +++ b/src/sp.go @@ -34,10 +34,8 @@ import ( ) const ( - MaxSPSize = 1<<16 - 256 - PartSuffix = ".part" - DefaultDeadline = 10 - + MaxSPSize = 1<<16 - 256 + PartSuffix = ".part" SPHeadOverhead = 4 ) @@ -55,6 +53,8 @@ var ( noise.HashBLAKE2b, ) + DefaultDeadline = 10 * time.Second + spWorkersGroup sync.WaitGroup ) @@ -171,7 +171,7 @@ type SPState struct { Ctx *Ctx Node *Node Nice uint8 - onlineDeadline uint + onlineDeadline time.Duration maxOnlineTime time.Duration hs *noise.HandshakeState csOur *noise.CipherState @@ -375,14 +375,14 @@ func (state *SPState) StartI(conn ConnDeadlined) error { } sds := SDS{"node": nodeId, "nice": int(state.Nice)} state.Ctx.LogD("sp-start", sds, "sending first message") - conn.SetWriteDeadline(time.Now().Add(DefaultDeadline * time.Second)) + conn.SetWriteDeadline(time.Now().Add(DefaultDeadline)) if err = state.WriteSP(conn, buf); err != nil { state.Ctx.LogE("sp-start", sds, err, "") state.dirUnlock() return err } state.Ctx.LogD("sp-start", sds, "waiting for first message") - conn.SetReadDeadline(time.Now().Add(DefaultDeadline * time.Second)) + conn.SetReadDeadline(time.Now().Add(DefaultDeadline)) if buf, err = state.ReadSP(conn); err != nil { state.Ctx.LogE("sp-start", sds, err, "") state.dirUnlock() @@ -428,7 +428,7 @@ func (state *SPState) StartR(conn ConnDeadlined) error { var buf []byte var payload []byte state.Ctx.LogD("sp-start", SDS{"nice": int(state.Nice)}, "waiting for first message") - conn.SetReadDeadline(time.Now().Add(DefaultDeadline * time.Second)) + conn.SetReadDeadline(time.Now().Add(DefaultDeadline)) if buf, err = state.ReadSP(conn); err != nil { state.Ctx.LogE("sp-start", SDS{}, err, "") return err @@ -496,7 +496,7 @@ func (state *SPState) StartR(conn ConnDeadlined) error { state.dirUnlock() return err } - conn.SetWriteDeadline(time.Now().Add(DefaultDeadline * time.Second)) + conn.SetWriteDeadline(time.Now().Add(DefaultDeadline)) if err = state.WriteSP(conn, buf); err != nil { state.Ctx.LogE("sp-start", sds, err, "") state.dirUnlock() @@ -574,8 +574,8 @@ func (state *SPState) StartWorkers( return } case now := <-ticker.C: - if (uint(now.Sub(state.RxLastSeen).Seconds()) >= state.onlineDeadline && - uint(now.Sub(state.TxLastSeen).Seconds()) >= state.onlineDeadline) || + if (now.Sub(state.RxLastSeen) >= state.onlineDeadline && + now.Sub(state.TxLastSeen) >= state.onlineDeadline) || (state.maxOnlineTime > 0 && state.mustFinishAt.Before(now)) { state.SetDead() conn.Close() @@ -737,7 +737,7 @@ func (state *SPState) StartWorkers( break } state.Ctx.LogD("sp-recv", sds, "waiting for payload") - conn.SetReadDeadline(time.Now().Add(DefaultDeadline * time.Second)) + conn.SetReadDeadline(time.Now().Add(DefaultDeadline)) payload, err := state.ReadSP(conn) if err != nil { if err == io.EOF {