diff --git a/control/controlclient/map.go b/control/controlclient/map.go index 436808995..787912222 100644 --- a/control/controlclient/map.go +++ b/control/controlclient/map.go @@ -19,7 +19,6 @@ "sync" "time" - xmaps "golang.org/x/exp/maps" "tailscale.com/control/controlknobs" "tailscale.com/envknob" "tailscale.com/tailcfg" @@ -313,10 +312,8 @@ func (ms *mapSession) updateStateFromResponse(resp *tailcfg.MapResponse) { } } if packetFilterChanged { - keys := xmaps.Keys(ms.namedPacketFilters) - sort.Strings(keys) var concat []tailcfg.FilterRule - for _, v := range keys { + for _, v := range slices.Sorted(maps.Keys(ms.namedPacketFilters)) { concat = ms.namedPacketFilters[v].AppendTo(concat) } ms.lastPacketFilterRules = views.SliceOf(concat) diff --git a/envknob/envknob.go b/envknob/envknob.go index 8873f0077..6eb6cdf9f 100644 --- a/envknob/envknob.go +++ b/envknob/envknob.go @@ -20,10 +20,11 @@ "fmt" "io" "log" + "maps" "os" "path/filepath" "runtime" - "sort" + "slices" "strconv" "strings" "sync" @@ -76,12 +77,7 @@ func LogCurrent(logf logf) { mu.Lock() defer mu.Unlock() - list := make([]string, 0, len(set)) - for k := range set { - list = append(list, k) - } - sort.Strings(list) - for _, k := range list { + for _, k := range slices.Sorted(maps.Keys(set)) { logf("envknob: %s=%q", k, set[k]) } } diff --git a/net/netcheck/netcheck_test.go b/net/netcheck/netcheck_test.go index 26e52602a..2f1870576 100644 --- a/net/netcheck/netcheck_test.go +++ b/net/netcheck/netcheck_test.go @@ -7,12 +7,12 @@ "bytes" "context" "fmt" + "maps" "net" "net/http" "net/netip" "reflect" "slices" - "sort" "strconv" "strings" "testing" @@ -593,13 +593,7 @@ func TestMakeProbePlan(t *testing.T) { func (plan probePlan) String() string { var sb strings.Builder - keys := []string{} - for k := range plan { - keys = append(keys, k) - } - sort.Strings(keys) - - for _, key := range keys { + for _, key := range slices.Sorted(maps.Keys(plan)) { fmt.Fprintf(&sb, "[%s]", key) pv := plan[key] for _, p := range pv { diff --git a/wgengine/magicsock/derp.go b/wgengine/magicsock/derp.go index 1735a71d8..69c5cbc90 100644 --- a/wgengine/magicsock/derp.go +++ b/wgengine/magicsock/derp.go @@ -7,11 +7,12 @@ "bufio" "context" "fmt" + "maps" "net" "net/netip" "reflect" "runtime" - "sort" + "slices" "sync" "time" "unsafe" @@ -907,12 +908,7 @@ func (c *Conn) foreachActiveDerpSortedLocked(fn func(regionID int, ad activeDerp } return } - ids := make([]int, 0, len(c.activeDerp)) - for id := range c.activeDerp { - ids = append(ids, id) - } - sort.Ints(ids) - for _, id := range ids { + for _, id := range slices.Sorted(maps.Keys(c.activeDerp)) { fn(id, c.activeDerp[id]) } }