| 123456789101112131415161718192021222324252627282930313233 |
- package dc
-
- import "math/rand/v2"
-
- type dcAddrSet struct {
- v4 map[int][]Addr
- v6 map[int][]Addr
- }
-
- func (d dcAddrSet) getV4(dc int) []Addr {
- if d.v4 == nil {
- return nil
- }
- return d.get(d.v4[dc])
- }
-
- func (d dcAddrSet) getV6(dc int) []Addr {
- if d.v6 == nil {
- return nil
- }
- return d.get(d.v6[dc])
- }
-
- func (d dcAddrSet) get(addrs []Addr) []Addr {
- otherSet := make([]Addr, 0, len(addrs))
- otherSet = append(otherSet, addrs...)
-
- rand.Shuffle(len(otherSet), func(i, j int) {
- otherSet[i], otherSet[j] = otherSet[j], otherSet[i]
- })
-
- return otherSet
- }
|