From 244a39f419376cb41f00caacc71fd415b119a2bf Mon Sep 17 00:00:00 2001 From: vyzo Date: Mon, 16 Mar 2020 21:32:32 +0200 Subject: [PATCH] validate the threshold values --- gossipsub.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gossipsub.go b/gossipsub.go index 227b94c..36a11fc 100644 --- a/gossipsub.go +++ b/gossipsub.go @@ -97,11 +97,23 @@ func WithPeerScore(params *PeerScoreParams, gossipThreshold, publishThreshold, g return fmt.Errorf("pubsub router is not gossipsub") } + // sanity check: validate the score parameters err := params.validate() if err != nil { return err } + // sanity check: validate the threshold values + if gossipThreshold > 0 { + return fmt.Errorf("invalid gossip threshold; it must be <= 0") + } + if publishThreshold > 0 || publishThreshold > gossipThreshold { + return fmt.Errorf("invalid publish threshold; it must be <= 0 and <= gossip threshold") + } + if graylistThreshold > 0 || graylistThreshold > publishThreshold { + return fmt.Errorf("invalid graylist threshold; it must be <= 0 and <= publish threshold") + } + gs.score = newPeerScore(params) gs.gossipThreshold = gossipThreshold gs.publishThreshold = publishThreshold