wgengine/magicsock: use math/rands/v2

Updates #11058

Co-authored-by: James Tucker <james@tailscale.com>
Signed-off-by: Maisem Ali <maisem@tailscale.com>
This commit is contained in:
Maisem Ali
2024-06-05 15:41:22 -07:00
committed by Maisem Ali
parent 573c8bd8c7
commit 36e8e8cd64
3 changed files with 11 additions and 8 deletions

View File

@@ -7,8 +7,6 @@ import (
"bufio"
"context"
"fmt"
"hash/fnv"
"math/rand"
"net"
"net/netip"
"reflect"
@@ -16,6 +14,7 @@ import (
"sort"
"sync"
"time"
"unsafe"
"github.com/tailscale/wireguard-go/conn"
"tailscale.com/derp"
@@ -31,6 +30,7 @@ import (
"tailscale.com/types/key"
"tailscale.com/types/logger"
"tailscale.com/util/mak"
"tailscale.com/util/rands"
"tailscale.com/util/sysresources"
"tailscale.com/util/testenv"
)
@@ -94,7 +94,6 @@ type activeDerp struct {
}
var (
processStartUnixNano = time.Now().UnixNano()
pickDERPFallbackForTests func() int
)
@@ -136,10 +135,7 @@ func (c *Conn) pickDERPFallback() int {
return pickDERPFallbackForTests()
}
// TODO: use math/rand/v2 here.
h := fnv.New64()
fmt.Fprintf(h, "%p/%d", c, processStartUnixNano) // arbitrary
return ids[rand.New(rand.NewSource(int64(h.Sum64()))).Intn(len(ids))]
return ids[rands.IntN(uint64(uintptr(unsafe.Pointer(c))), len(ids))]
}
// This allows existing tests to pass, but allows us to still test the