From: Sergey Matveev Date: Fri, 1 May 2015 21:34:18 +0000 (+0300) Subject: Timeout is duration, not integer. Simplify code X-Git-Tag: 3.0^2~8 X-Git-Url: http://www.git.cypherpunks.ru/?a=commitdiff_plain;h=3964f96a875dad931a12b4292d7c74c89346e79d;p=govpn.git Timeout is duration, not integer. Simplify code Signed-off-by: Sergey Matveev --- diff --git a/cmd/govpn-client/main.go b/cmd/govpn-client/main.go index 495c22c..f6ca4b3 100644 --- a/cmd/govpn-client/main.go +++ b/cmd/govpn-client/main.go @@ -25,6 +25,7 @@ import ( "net" "os" "os/signal" + "time" "govpn" ) @@ -50,7 +51,7 @@ func main() { log.SetFlags(log.Ldate | log.Lmicroseconds | log.Lshortfile) govpn.MTU = *mtu - govpn.Timeout = timeout + govpn.Timeout = time.Second * time.Duration(timeout) govpn.Noncediff = *nonceDiff govpn.NoiseEnable = *noisy diff --git a/cmd/govpn-server/main.go b/cmd/govpn-server/main.go index 032de00..16462b7 100644 --- a/cmd/govpn-server/main.go +++ b/cmd/govpn-server/main.go @@ -84,7 +84,7 @@ func main() { log.SetFlags(log.Ldate | log.Lmicroseconds | log.Lshortfile) govpn.MTU = *mtu - govpn.Timeout = *timeoutP + govpn.Timeout = timeout govpn.Noncediff = *nonceDiff govpn.NoiseEnable = *noisy govpn.PeersInit(*peersPath) diff --git a/common.go b/common.go index 5be6db0..e5ff496 100644 --- a/common.go +++ b/common.go @@ -25,11 +25,12 @@ import ( "os" "os/exec" "runtime" + "time" ) var ( MTU int - Timeout int + Timeout time.Duration Noncediff int Version string NoiseEnable bool = false diff --git a/transport.go b/transport.go index d0230e1..eb02494 100644 --- a/transport.go +++ b/transport.go @@ -39,6 +39,8 @@ const ( MaxBytesPerKey int64 = 1 << 32 // Size of packet's size mark in bytes PktSizeSize = 2 + // Heartbeat rate, relative to Timeout + TimeoutHeartbeat = 4 ) type UDPPkt struct { @@ -91,15 +93,14 @@ func (p *Peer) Zero() { var ( Emptiness = make([]byte, 1<<14) taps = make(map[string]*TAP) - heartbeatPeriod *time.Duration + heartbeatPeriod time.Duration ) func heartbeatPeriodGet() time.Duration { - if heartbeatPeriod == nil { - period := time.Second * time.Duration(Timeout/4) - heartbeatPeriod = &period + if heartbeatPeriod == time.Duration(0) { + heartbeatPeriod = Timeout / TimeoutHeartbeat } - return *heartbeatPeriod + return heartbeatPeriod } // Create TAP listening goroutine.