From ceba9ff2002a22088b7be3f73623e9f785fe5dd3 Mon Sep 17 00:00:00 2001 From: petricadaipegsp <155911522+petricadaipegsp@users.noreply.github.com> Date: Sun, 17 Nov 2024 13:32:54 +0100 Subject: [PATCH] Trigger prune for removed peers (#361) --- go-libp2p-blossomsub/blossomsub.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/go-libp2p-blossomsub/blossomsub.go b/go-libp2p-blossomsub/blossomsub.go index 94017d4..505fd8c 100644 --- a/go-libp2p-blossomsub/blossomsub.go +++ b/go-libp2p-blossomsub/blossomsub.go @@ -633,6 +633,19 @@ loop: func (bs *BlossomSubRouter) RemovePeer(p peer.ID) { log.Debugf("PEERDOWN: Remove disconnected peer %s", p) + masks := make([][]byte, 0) + bs.meshMx.Lock() + for bitmask, peers := range bs.mesh { + if _, ok := peers[p]; !ok { + continue + } + masks = append(masks, []byte(bitmask)) + } + bs.meshMx.Unlock() + for _, bitmask := range masks { + log.Debugf("PEERDOWN: Pruning peer %s from bitmask %s", p, bitmask) + bs.tracer.Prune(p, bitmask) + } bs.tracer.RemovePeer(p) delete(bs.peers, p) bs.meshMx.Lock()