mirror of
https://github.com/vacp2p/nim-libp2p.git
synced 2025-03-03 09:31:08 +00:00
Make connectedPeers more accurate
This commit is contained in:
parent
5bf4fa8953
commit
bc0aa57a6b
@ -59,7 +59,7 @@ method innerRun(self: AutoRelay, switch: Switch) {.async, gcsafe.} =
|
|||||||
# Remove peers that failed
|
# Remove peers that failed
|
||||||
var peersToRemove: seq[PeerId]
|
var peersToRemove: seq[PeerId]
|
||||||
for k, v in self.peers:
|
for k, v in self.peers:
|
||||||
if v.failed() or v.cancelled():
|
if v.finished():
|
||||||
peersToRemove.add(k)
|
peersToRemove.add(k)
|
||||||
for k in peersToRemove:
|
for k in peersToRemove:
|
||||||
self.peers.del(k)
|
self.peers.del(k)
|
||||||
@ -69,10 +69,11 @@ method innerRun(self: AutoRelay, switch: Switch) {.async, gcsafe.} =
|
|||||||
# Get all connected peers
|
# Get all connected peers
|
||||||
let rng = newRng()
|
let rng = newRng()
|
||||||
var connectedPeers = switch.connectedPeers(Direction.Out)
|
var connectedPeers = switch.connectedPeers(Direction.Out)
|
||||||
connectedPeers.keepItIf(RelayV2HopCodec in switch.peerStore[ProtoBook][it])
|
connectedPeers.keepItIf(RelayV2HopCodec in switch.peerStore[ProtoBook][it] or
|
||||||
|
it notin self.peers.keys())
|
||||||
rng.shuffle(connectedPeers)
|
rng.shuffle(connectedPeers)
|
||||||
|
|
||||||
for relayPid in switch.connectedPeers(Direction.Out):
|
for relayPid in connectedPeers:
|
||||||
if self.peers.len() >= self.npeers:
|
if self.peers.len() >= self.npeers:
|
||||||
break
|
break
|
||||||
if RelayV2HopCodec in switch.peerStore[ProtoBook][relayPid]:
|
if RelayV2HopCodec in switch.peerStore[ProtoBook][relayPid]:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user