From 283593fbc05c5cecfd52048e375d5e6d49cbce27 Mon Sep 17 00:00:00 2001 From: vyzo Date: Sun, 8 Mar 2020 20:21:16 +0200 Subject: [PATCH] mesh tracking --- score.go | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/score.go b/score.go index b5e03c7..e755015 100644 --- a/score.go +++ b/score.go @@ -306,11 +306,39 @@ func (ps *peerScore) Join(topic string) {} func (ps *peerScore) Leave(topic string) {} func (ps *peerScore) Graft(p peer.ID, topic string) { - // TODO + ps.Lock() + defer ps.Unlock() + + pstats, ok := ps.peerStats[p] + if !ok { + return + } + + tstats, ok := pstats.getTopicStats(topic, ps.params) + if !ok { + return + } + + tstats.inMesh = true + tstats.graftTime = time.Now() + tstats.meshTime = 0 } func (ps *peerScore) Prune(p peer.ID, topic string) { - // TODO + ps.Lock() + defer ps.Unlock() + + pstats, ok := ps.peerStats[p] + if !ok { + return + } + + tstats, ok := pstats.getTopicStats(topic, ps.params) + if !ok { + return + } + + tstats.inMesh = false } func (ps *peerScore) DeliverMessage(msg *Message) {