diff --git a/edge-apis/pool.go b/edge-apis/pool.go index 092aa4ac..247b7d46 100644 --- a/edge-apis/pool.go +++ b/edge-apis/pool.go @@ -21,7 +21,7 @@ import ( "github.com/michaelquigley/pfxlog" cmap "github.com/orcaman/concurrent-map/v2" errors "github.com/pkg/errors" - "golang.org/x/exp/rand" + "math/rand/v2" "net" "net/url" "sync/atomic" @@ -223,7 +223,6 @@ func (c *ClientTransportPoolRandom) TryTransportForF(cb func(*ApiClientTransport } func (c *ClientTransportPoolRandom) AnyTransport() *ApiClientTransport { - rand.Seed(uint64(time.Now().UnixNano())) transportBuffer := c.pool.Items() var keys []string @@ -234,7 +233,9 @@ func (c *ClientTransportPoolRandom) AnyTransport() *ApiClientTransport { if len(keys) == 0 { return nil } - index := rand.Intn(len(keys)) + seed := uint64(time.Now().UnixNano()) + rng := rand.New(rand.NewPCG(seed, seed)) + index := rng.IntN(len(keys)) return transportBuffer[keys[index]] } @@ -257,11 +258,12 @@ func errorIndicatesControllerSwap(err error) bool { } func selectAndRemoveRandom[T any](slice []T, zero T) (selected T, modifiedSlice []T) { - rand.Seed(uint64(time.Now().UnixNano())) if len(slice) == 0 { return zero, slice } - index := rand.Intn(len(slice)) + seed := uint64(time.Now().UnixNano()) + rng := rand.New(rand.NewPCG(seed, seed)) + index := rng.IntN(len(slice)) selected = slice[index] modifiedSlice = append(slice[:index], slice[index+1:]...) return selected, modifiedSlice diff --git a/go.mod b/go.mod index 1d65f45b..c8d59fdf 100644 --- a/go.mod +++ b/go.mod @@ -32,7 +32,6 @@ require ( github.com/stretchr/testify v1.10.0 github.com/zitadel/oidc/v2 v2.12.2 go.mozilla.org/pkcs7 v0.9.0 - golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 golang.org/x/oauth2 v0.28.0 golang.org/x/sys v0.31.0 google.golang.org/protobuf v1.36.6 diff --git a/go.sum b/go.sum index 3bf1e425..a5540c7e 100644 --- a/go.sum +++ b/go.sum @@ -430,8 +430,6 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM= -golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/ziti/edge/types.go b/ziti/edge/types.go index 8648b70b..5ff0ec50 100644 --- a/ziti/edge/types.go +++ b/ziti/edge/types.go @@ -6,8 +6,8 @@ import ( "github.com/mitchellh/mapstructure" "github.com/openziti/edge-api/rest_model" "github.com/pkg/errors" - "golang.org/x/exp/slices" "net" + "slices" "strings" )