mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-02 14:03:06 +00:00
Fix: No keep-alive for backoff peers (#584)
This commit is contained in:
parent
0bc3300907
commit
a1eb88faab
@ -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)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user