From 4efa4b6c1f8081c7a15e47ff588dae3b006ebf63 Mon Sep 17 00:00:00 2001 From: jm-clius Date: Tue, 1 Jun 2021 08:17:42 +0000 Subject: [PATCH] deploy: a1eb88faabc46d3dbf1acb9bc76a6ed04cc2c1d6 --- waku/v2/protocol/waku_relay.nim | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/waku/v2/protocol/waku_relay.nim b/waku/v2/protocol/waku_relay.nim index 650e57499..f5d3ff256 100644 --- a/waku/v2/protocol/waku_relay.nim +++ b/waku/v2/protocol/waku_relay.nim @@ -28,9 +28,15 @@ proc keepAlive*(w: WakuRelay) {.async.} = for topic in w.topics.keys: trace "Keepalive on topic", topic=topic - let mpeers = w.mesh.getOrDefault(topic) + let + # Mesh peers for topic + mpeers = toSeq(w.mesh.getOrDefault(topic)) + # Peers we're backing off from on topic + backoffPeers = w.backingOff.getOrDefault(topic) + # Only keep peers alive that we're not backing off from + keepAlivePeers = mpeers.filterIt(not backoffPeers.hasKey(it.peerId)) - w.broadcast(toSeq(mpeers), RPCMsg(control: some(ControlMessage(graft: @[ControlGraft(topicID: topic)])))) + w.broadcast(keepAlivePeers, RPCMsg(control: some(ControlMessage(graft: @[ControlGraft(topicID: topic)])))) await sleepAsync(DefaultKeepAlive)