Skip to content

Commit 8f56b13

Browse files
committed
chore(basichost): use ma.Multiaddr.Compare method expression for sorting
Replaces five identical func(a, b ma.Multiaddr) int lambdas. Assisted-By: Claude Fable 5
1 parent abec357 commit 8f56b13

2 files changed

Lines changed: 9 additions & 12 deletions

File tree

p2p/host/basic/addrs_manager.go

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ func (a *addrsManager) applyAddrsFactory(addrs []ma.Multiaddr) []ma.Multiaddr {
479479
addrs = append(addrs[:0], af...)
480480
// Add certhashes for the addresses provided by the user via address factory.
481481
addrs = a.addCertHashes(ma.Unique(addrs))
482-
slices.SortFunc(addrs, func(a, b ma.Multiaddr) int { return a.Compare(b) })
482+
slices.SortFunc(addrs, ma.Multiaddr.Compare)
483483
return addrs
484484
}
485485

@@ -514,15 +514,12 @@ func (a *addrsManager) ConfirmedAddrs() (reachable []ma.Multiaddr, unreachable [
514514

515515
func (a *addrsManager) getConfirmedAddrs(localAddrs []ma.Multiaddr) (reachableAddrs, unreachableAddrs, unknownAddrs []ma.Multiaddr) {
516516
reachableAddrs, unreachableAddrs, unknownAddrs = a.addrsReachabilityTracker.ConfirmedAddrs()
517-
// The tracker returns primary addrs followed by secondary addrs, which
518-
// interleave under Multiaddr.Compare (webrtc-direct sorts before quic-v1
519-
// on the same UDP socket). removeNotInSource here and removeInSource in
517+
// Don't rely on tracker's ordering. removeNotInSource here and removeInSource in
520518
// getDialableAddrs require sorted input; unsorted input silently drops
521519
// confirmed addrs.
522-
cmp := func(a, b ma.Multiaddr) int { return a.Compare(b) }
523-
slices.SortFunc(reachableAddrs, cmp)
524-
slices.SortFunc(unreachableAddrs, cmp)
525-
slices.SortFunc(unknownAddrs, cmp)
520+
slices.SortFunc(reachableAddrs, ma.Multiaddr.Compare)
521+
slices.SortFunc(unreachableAddrs, ma.Multiaddr.Compare)
522+
slices.SortFunc(unknownAddrs, ma.Multiaddr.Compare)
526523
return removeNotInSource(reachableAddrs, localAddrs), removeNotInSource(unreachableAddrs, localAddrs), removeNotInSource(unknownAddrs, localAddrs)
527524
}
528525

@@ -560,7 +557,7 @@ func (a *addrsManager) getLocalAddrs() []ma.Multiaddr {
560557
// using identify.
561558
finalAddrs = a.addCertHashes(finalAddrs)
562559
finalAddrs = ma.Unique(finalAddrs)
563-
slices.SortFunc(finalAddrs, func(a, b ma.Multiaddr) int { return a.Compare(b) })
560+
slices.SortFunc(finalAddrs, ma.Multiaddr.Compare)
564561
return finalAddrs
565562
}
566563

@@ -700,8 +697,8 @@ func areAddrsDifferent(prev, current []ma.Multiaddr) bool {
700697
if len(prev) != len(current) {
701698
return true
702699
}
703-
slices.SortFunc(prev, func(a, b ma.Multiaddr) int { return a.Compare(b) })
704-
slices.SortFunc(current, func(a, b ma.Multiaddr) int { return a.Compare(b) })
700+
slices.SortFunc(prev, ma.Multiaddr.Compare)
701+
slices.SortFunc(current, ma.Multiaddr.Compare)
705702
for i := range prev {
706703
if !prev[i].Equal(current[i]) {
707704
return true

p2p/host/basic/addrs_reachability_tracker.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ func (m *probeManager) UpdateAddrs(addrs []ma.Multiaddr) {
434434
m.mx.Lock()
435435
defer m.mx.Unlock()
436436

437-
slices.SortFunc(addrs, func(a, b ma.Multiaddr) int { return a.Compare(b) })
437+
slices.SortFunc(addrs, ma.Multiaddr.Compare)
438438
statuses := make(map[string]*addrStatus, len(addrs))
439439
for _, addr := range addrs {
440440
k := string(addr.Bytes())

0 commit comments

Comments
 (0)