summaryrefslogtreecommitdiff
path: root/cpp/src/IceStorm/LinkSubscriber.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceStorm/LinkSubscriber.cpp')
-rw-r--r--cpp/src/IceStorm/LinkSubscriber.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/cpp/src/IceStorm/LinkSubscriber.cpp b/cpp/src/IceStorm/LinkSubscriber.cpp
index dfe14cb8956..31fe7f6051d 100644
--- a/cpp/src/IceStorm/LinkSubscriber.cpp
+++ b/cpp/src/IceStorm/LinkSubscriber.cpp
@@ -72,9 +72,11 @@ void
LinkSubscriber::publish(const Event& event)
{
//
- // Don't forward forwarded, or more costly events.
+ // Don't propagate a message that has already been forwarded.
+ // Also, if this link has a non-zero cost, then don't propagate
+ // a message whose cost exceeds the link cost.
//
- if(event.forwarded || event.cost > _cost)
+ if(event.forwarded || (_cost > 0 && event.cost > _cost))
{
return;
}