Skip to content

Commit 4e0fc03

Browse files
committed
all: use iterators over slice views more
This gets close to all of the remaining ones. Updates tailscale#12912 Change-Id: I9c672bbed2654a6c5cab31e0cbece6c107d8c6fa Signed-off-by: Brad Fitzpatrick <[email protected]>
1 parent 00be176 commit 4e0fc03

File tree

20 files changed

+62
-86
lines changed

20 files changed

+62
-86
lines changed

cmd/tsconnect/wasm/wasm_js.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,8 @@ func (i *jsIPN) run(jsCallbacks js.Value) {
272272
name = p.Hostinfo().Hostname()
273273
}
274274
addrs := make([]string, p.Addresses().Len())
275-
for i := range p.Addresses().Len() {
276-
addrs[i] = p.Addresses().At(i).Addr().String()
275+
for i, ap := range p.Addresses().All() {
276+
addrs[i] = ap.Addr().String()
277277
}
278278
return jsNetMapPeerNode{
279279
jsNetMapNode: jsNetMapNode{
@@ -589,8 +589,8 @@ func mapSlice[T any, M any](a []T, f func(T) M) []M {
589589

590590
func mapSliceView[T any, M any](a views.Slice[T], f func(T) M) []M {
591591
n := make([]M, a.Len())
592-
for i := range a.Len() {
593-
n[i] = f(a.At(i))
592+
for i, v := range a.All() {
593+
n[i] = f(v)
594594
}
595595
return n
596596
}

ipn/ipnlocal/drive.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -354,9 +354,8 @@ func (b *LocalBackend) driveRemotesFromPeers(nm *netmap.NetworkMap) []*drive.Rem
354354

355355
// Check that the peer is allowed to share with us.
356356
addresses := peer.Addresses()
357-
for i := range addresses.Len() {
358-
addr := addresses.At(i)
359-
capsMap := b.PeerCaps(addr.Addr())
357+
for _, p := range addresses.All() {
358+
capsMap := b.PeerCaps(p.Addr())
360359
if capsMap.HasCapability(tailcfg.PeerCapabilityTaildriveSharer) {
361360
return true
362361
}

ipn/ipnlocal/local.go

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1811,8 +1811,7 @@ func setExitNodeID(prefs *ipn.Prefs, nm *netmap.NetworkMap, lastSuggestedExitNod
18111811
}
18121812

18131813
for _, peer := range nm.Peers {
1814-
for i := range peer.Addresses().Len() {
1815-
addr := peer.Addresses().At(i)
1814+
for _, addr := range peer.Addresses().All() {
18161815
if !addr.IsSingleIP() || addr.Addr() != prefs.ExitNodeIP {
18171816
continue
18181817
}
@@ -4997,8 +4996,8 @@ func (b *LocalBackend) enterStateLockedOnEntry(newState ipn.State, unlock unlock
49974996
case ipn.Running:
49984997
var addrStrs []string
49994998
addrs := netMap.GetAddresses()
5000-
for i := range addrs.Len() {
5001-
addrStrs = append(addrStrs, addrs.At(i).Addr().String())
4999+
for _, p := range addrs.All() {
5000+
addrStrs = append(addrStrs, p.Addr().String())
50025001
}
50035002
systemd.Status("Connected; %s; %s", activeLogin, strings.Join(addrStrs, " "))
50045003
case ipn.NoState:
@@ -6089,8 +6088,7 @@ func (b *LocalBackend) SetDNS(ctx context.Context, name, value string) error {
60896088

60906089
func peerAPIPorts(peer tailcfg.NodeView) (p4, p6 uint16) {
60916090
svcs := peer.Hostinfo().Services()
6092-
for i := range svcs.Len() {
6093-
s := svcs.At(i)
6091+
for _, s := range svcs.All() {
60946092
switch s.Proto {
60956093
case tailcfg.PeerAPI4:
60966094
p4 = s.Port
@@ -6122,8 +6120,7 @@ func peerAPIBase(nm *netmap.NetworkMap, peer tailcfg.NodeView) string {
61226120

61236121
var have4, have6 bool
61246122
addrs := nm.GetAddresses()
6125-
for i := range addrs.Len() {
6126-
a := addrs.At(i)
6123+
for _, a := range addrs.All() {
61276124
if !a.IsSingleIP() {
61286125
continue
61296126
}
@@ -6145,10 +6142,9 @@ func peerAPIBase(nm *netmap.NetworkMap, peer tailcfg.NodeView) string {
61456142
}
61466143

61476144
func nodeIP(n tailcfg.NodeView, pred func(netip.Addr) bool) netip.Addr {
6148-
for i := range n.Addresses().Len() {
6149-
a := n.Addresses().At(i)
6150-
if a.IsSingleIP() && pred(a.Addr()) {
6151-
return a.Addr()
6145+
for _, pfx := range n.Addresses().All() {
6146+
if pfx.IsSingleIP() && pred(pfx.Addr()) {
6147+
return pfx.Addr()
61526148
}
61536149
}
61546150
return netip.Addr{}
@@ -6378,8 +6374,8 @@ func peerCanProxyDNS(p tailcfg.NodeView) bool {
63786374
// If p.Cap is not populated (e.g. older control server), then do the old
63796375
// thing of searching through services.
63806376
services := p.Hostinfo().Services()
6381-
for i := range services.Len() {
6382-
if s := services.At(i); s.Proto == tailcfg.PeerAPIDNS && s.Port >= 1 {
6377+
for _, s := range services.All() {
6378+
if s.Proto == tailcfg.PeerAPIDNS && s.Port >= 1 {
63836379
return true
63846380
}
63856381
}

ipn/ipnlocal/local_test.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3041,12 +3041,10 @@ func deterministicNodeForTest(t testing.TB, want views.Slice[tailcfg.StableNodeI
30413041
var ret tailcfg.NodeView
30423042

30433043
gotIDs := make([]tailcfg.StableNodeID, got.Len())
3044-
for i := range got.Len() {
3045-
nv := got.At(i)
3044+
for i, nv := range got.All() {
30463045
if !nv.Valid() {
30473046
t.Fatalf("invalid node at index %v", i)
30483047
}
3049-
30503048
gotIDs[i] = nv.StableID()
30513049
if nv.StableID() == use {
30523050
ret = nv

ipn/ipnlocal/network-lock.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,7 @@ func (b *LocalBackend) tkaBootstrapFromGenesisLocked(g tkatype.MarshaledAUM, per
430430
}
431431
bootstrapStateID := fmt.Sprintf("%d:%d", genesis.State.StateID1, genesis.State.StateID2)
432432

433-
for i := range persist.DisallowedTKAStateIDs().Len() {
434-
stateID := persist.DisallowedTKAStateIDs().At(i)
433+
for _, stateID := range persist.DisallowedTKAStateIDs().All() {
435434
if stateID == bootstrapStateID {
436435
return fmt.Errorf("TKA with stateID of %q is disallowed on this node", stateID)
437436
}
@@ -572,8 +571,7 @@ func tkaStateFromPeer(p tailcfg.NodeView) ipnstate.TKAPeer {
572571
TailscaleIPs: make([]netip.Addr, 0, p.Addresses().Len()),
573572
NodeKey: p.Key(),
574573
}
575-
for i := range p.Addresses().Len() {
576-
addr := p.Addresses().At(i)
574+
for _, addr := range p.Addresses().All() {
577575
if addr.IsSingleIP() && tsaddr.IsTailscaleIP(addr.Addr()) {
578576
fp.TailscaleIPs = append(fp.TailscaleIPs, addr.Addr())
579577
}

ipn/ipnlocal/serve.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,7 @@ func (b *LocalBackend) updateServeTCPPortNetMapAddrListenersLocked(ports []uint1
242242
}
243243

244244
addrs := nm.GetAddresses()
245-
for i := range addrs.Len() {
246-
a := addrs.At(i)
245+
for _, a := range addrs.All() {
247246
for _, p := range ports {
248247
addrPort := netip.AddrPortFrom(a.Addr(), p)
249248
if _, ok := b.serveListeners[addrPort]; ok {

ipn/ipnlocal/web_client.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,8 @@ func (b *LocalBackend) updateWebClientListenersLocked() {
121121
}
122122

123123
addrs := b.netMap.GetAddresses()
124-
for i := range addrs.Len() {
125-
addrPort := netip.AddrPortFrom(addrs.At(i).Addr(), webClientPort)
124+
for _, pfx := range addrs.All() {
125+
addrPort := netip.AddrPortFrom(pfx.Addr(), webClientPort)
126126
if _, ok := b.webClientListeners[addrPort]; ok {
127127
continue // already listening
128128
}

net/ipset/ipset.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ func NewContainsIPFunc(addrs views.Slice[netip.Prefix]) func(ip netip.Addr) bool
8282
pathForTest("bart")
8383
// Built a bart table.
8484
t := &bart.Table[struct{}]{}
85-
for i := range addrs.Len() {
86-
t.Insert(addrs.At(i), struct{}{})
85+
for _, p := range addrs.All() {
86+
t.Insert(p, struct{}{})
8787
}
8888
return bartLookup(t)
8989
}
@@ -99,8 +99,8 @@ func NewContainsIPFunc(addrs views.Slice[netip.Prefix]) func(ip netip.Addr) bool
9999
// General case:
100100
pathForTest("ip-map")
101101
m := set.Set[netip.Addr]{}
102-
for i := range addrs.Len() {
103-
m.Add(addrs.At(i).Addr())
102+
for _, p := range addrs.All() {
103+
m.Add(p.Addr())
104104
}
105105
return ipInMap(m)
106106
}

net/tsaddr/tsaddr.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,7 @@ func PrefixIs6(p netip.Prefix) bool { return p.Addr().Is6() }
180180
// IPv6 /0 route.
181181
func ContainsExitRoutes(rr views.Slice[netip.Prefix]) bool {
182182
var v4, v6 bool
183-
for i := range rr.Len() {
184-
r := rr.At(i)
183+
for _, r := range rr.All() {
185184
if r == allIPv4 {
186185
v4 = true
187186
} else if r == allIPv6 {
@@ -194,8 +193,8 @@ func ContainsExitRoutes(rr views.Slice[netip.Prefix]) bool {
194193
// ContainsExitRoute reports whether rr contains at least one of IPv4 or
195194
// IPv6 /0 (exit) routes.
196195
func ContainsExitRoute(rr views.Slice[netip.Prefix]) bool {
197-
for i := range rr.Len() {
198-
if rr.At(i).Bits() == 0 {
196+
for _, r := range rr.All() {
197+
if r.Bits() == 0 {
199198
return true
200199
}
201200
}
@@ -205,8 +204,8 @@ func ContainsExitRoute(rr views.Slice[netip.Prefix]) bool {
205204
// ContainsNonExitSubnetRoutes reports whether v contains Subnet
206205
// Routes other than ExitNode Routes.
207206
func ContainsNonExitSubnetRoutes(rr views.Slice[netip.Prefix]) bool {
208-
for i := range rr.Len() {
209-
if rr.At(i).Bits() != 0 {
207+
for _, r := range rr.All() {
208+
if r.Bits() != 0 {
210209
return true
211210
}
212211
}

net/tsdial/dnsmap.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ func dnsMapFromNetworkMap(nm *netmap.NetworkMap) dnsMap {
4242
if dnsname.HasSuffix(nm.Name, suffix) {
4343
ret[canonMapKey(dnsname.TrimSuffix(nm.Name, suffix))] = ip
4444
}
45-
for i := range addrs.Len() {
46-
if addrs.At(i).Addr().Is4() {
45+
for _, p := range addrs.All() {
46+
if p.Addr().Is4() {
4747
have4 = true
4848
}
4949
}
@@ -52,9 +52,8 @@ func dnsMapFromNetworkMap(nm *netmap.NetworkMap) dnsMap {
5252
if p.Name() == "" {
5353
continue
5454
}
55-
for i := range p.Addresses().Len() {
56-
a := p.Addresses().At(i)
57-
ip := a.Addr()
55+
for _, pfx := range p.Addresses().All() {
56+
ip := pfx.Addr()
5857
if ip.Is4() && !have4 {
5958
continue
6059
}

0 commit comments

Comments
 (0)