From 062bd67d3b4e57edd4459c2e01218da9fc8d24fa Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Thu, 13 Aug 2020 14:06:43 -0700 Subject: [PATCH] derp: use rand instead of crypto/rand to generate jitter We don't need crypto/rand. Let the OS keep its entropy bits. Signed-off-by: Josh Bleecher Snyder --- derp/derp_server.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/derp/derp_server.go b/derp/derp_server.go index e263a6568..2658f01c3 100644 --- a/derp/derp_server.go +++ b/derp/derp_server.go @@ -17,7 +17,7 @@ import ( "io" "io/ioutil" "log" - "math/big" + "math/rand" "os" "runtime" "strconv" @@ -56,6 +56,10 @@ func init() { } } +func init() { + rand.Seed(time.Now().UnixNano()) +} + const ( perClientSendQueueDepth = 32 // packets buffered for sending writeTimeout = 2 * time.Second @@ -927,11 +931,7 @@ func (c *sclient) sendLoop(ctx context.Context) error { } }() - jitterMs, err := crand.Int(crand.Reader, big.NewInt(5000)) - if err != nil { - panic(err) - } - jitter := time.Duration(jitterMs.Int64()) * time.Millisecond + jitter := time.Duration(rand.Intn(5000)) * time.Millisecond keepAliveTick := time.NewTicker(keepAlive + jitter) defer keepAliveTick.Stop()