check if already in the mesh in handleGraft to support concurrent grafting

This commit is contained in:
vyzo 2020-05-16 12:57:44 +03:00
parent eef4d41e0e
commit 39fc35f7cb
1 changed files with 6 additions and 0 deletions

View File

@ -537,6 +537,12 @@ func (gs *GossipSubRouter) handleGraft(p peer.ID, ctl *pb.ControlMessage) []*pb.
continue
}
// check if it is already in the mesh; if so do nothing (we might have concurrent grafting)
_, inMesh := peers[p]
if inMesh {
continue
}
// we don't GRAFT to/from direct peers; complain loudly if this happens
_, direct := gs.direct[p]
if direct {