mirror of
https://github.com/libp2p/go-libp2p-peerstore.git
synced 2025-03-29 13:40:07 +08:00
stop using the peer.Set (#201)
This commit is contained in:
parent
9f3a96b88d
commit
c80216f8a1
@ -147,17 +147,21 @@ func (mab *memoryAddrBook) gc() {
|
|||||||
|
|
||||||
func (mab *memoryAddrBook) PeersWithAddrs() peer.IDSlice {
|
func (mab *memoryAddrBook) PeersWithAddrs() peer.IDSlice {
|
||||||
// deduplicate, since the same peer could have both signed & unsigned addrs
|
// deduplicate, since the same peer could have both signed & unsigned addrs
|
||||||
pidSet := peer.NewSet()
|
set := make(map[peer.ID]struct{})
|
||||||
for _, s := range mab.segments {
|
for _, s := range mab.segments {
|
||||||
s.RLock()
|
s.RLock()
|
||||||
for pid, amap := range s.addrs {
|
for pid, amap := range s.addrs {
|
||||||
if len(amap) > 0 {
|
if len(amap) > 0 {
|
||||||
pidSet.Add(pid)
|
set[pid] = struct{}{}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s.RUnlock()
|
s.RUnlock()
|
||||||
}
|
}
|
||||||
return pidSet.Peers()
|
peers := make(peer.IDSlice, 0, len(set))
|
||||||
|
for pid := range set {
|
||||||
|
peers = append(peers, pid)
|
||||||
|
}
|
||||||
|
return peers
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddAddr calls AddAddrs(p, []ma.Multiaddr{addr}, ttl)
|
// AddAddr calls AddAddrs(p, []ma.Multiaddr{addr}, ttl)
|
||||||
|
Loading…
Reference in New Issue
Block a user