summaryrefslogtreecommitdiff
path: root/node/Network.hpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2013-08-09 16:36:58 -0400
committerAdam Ierymenko <adam.ierymenko@gmail.com>2013-08-09 16:36:58 -0400
commit6a24ac4f00cfb3fd260c8f29acbb7f5c7b61b3c8 (patch)
treea79796050f5ce86aa06c0c5137243e234bb92013 /node/Network.hpp
parent3af55f4423ab527a7366a56d552a4641560bc6f2 (diff)
downloadinfinitytier-6a24ac4f00cfb3fd260c8f29acbb7f5c7b61b3c8.tar.gz
infinitytier-6a24ac4f00cfb3fd260c8f29acbb7f5c7b61b3c8.zip
Add a concept of debt to RateLimiter, save a bit of RAM.
Diffstat (limited to 'node/Network.hpp')
-rw-r--r--node/Network.hpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/node/Network.hpp b/node/Network.hpp
index 7945569c..312912db 100644
--- a/node/Network.hpp
+++ b/node/Network.hpp
@@ -440,10 +440,10 @@ public:
std::map<Address,RateLimiter>::iterator rl(_multicastRateLimiters.find(addr));
if (rl == _multicastRateLimiters.end()) {
RateLimiter &newrl = _multicastRateLimiters[addr];
- newrl.init(ZT_MULTICAST_DEFAULT_BYTES_PER_SECOND,ZT_MULTICAST_DEFAULT_RATE_PRELOAD,ZT_MULTICAST_DEFAULT_RATE_MAX);
- return newrl.gate((double)bytes);
+ newrl.init(ZT_MULTICAST_DEFAULT_RATE_PRELOAD);
+ return newrl.gate(_rlLimit,(double)bytes);
}
- return rl->second.gate((double)bytes);
+ return rl->second.gate(_rlLimit,(double)bytes);
}
private:
@@ -452,6 +452,9 @@ private:
const RuntimeEnvironment *_r;
+ // Rate limits for this network
+ RateLimiter::Limit _rlLimit;
+
// Tap and tap multicast memberships
EthernetTap *_tap;
std::set<MulticastGroup> _multicastGroups;