From bc0aa57a6bdb3bcd09bd68e55ca5388453897b92 Mon Sep 17 00:00:00 2001 From: Ludovic Chenut Date: Tue, 13 Dec 2022 16:08:26 +0100 Subject: [PATCH] Make connectedPeers more accurate --- libp2p/protocols/connectivity/autorelay.nim | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libp2p/protocols/connectivity/autorelay.nim b/libp2p/protocols/connectivity/autorelay.nim index 631a12f28..5b1175cc9 100644 --- a/libp2p/protocols/connectivity/autorelay.nim +++ b/libp2p/protocols/connectivity/autorelay.nim @@ -59,7 +59,7 @@ method innerRun(self: AutoRelay, switch: Switch) {.async, gcsafe.} = # Remove peers that failed var peersToRemove: seq[PeerId] for k, v in self.peers: - if v.failed() or v.cancelled(): + if v.finished(): peersToRemove.add(k) for k in peersToRemove: self.peers.del(k) @@ -69,10 +69,11 @@ method innerRun(self: AutoRelay, switch: Switch) {.async, gcsafe.} = # Get all connected peers let rng = newRng() 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) - for relayPid in switch.connectedPeers(Direction.Out): + for relayPid in connectedPeers: if self.peers.len() >= self.npeers: break if RelayV2HopCodec in switch.peerStore[ProtoBook][relayPid]: