diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-10-27 18:18:26 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-10-27 18:18:26 -0700 |
commit | cdc99bfee10ac58a8dab1aabcb85e69f3862b7ad (patch) | |
tree | 82b3a8996b48c101b749ad3fcf59302ba7a3e416 /node/IncomingPacket.cpp | |
parent | 88b100e5d0db5df16622fa48899cf652e09b3e91 (diff) | |
download | infinitytier-cdc99bfee10ac58a8dab1aabcb85e69f3862b7ad.tar.gz infinitytier-cdc99bfee10ac58a8dab1aabcb85e69f3862b7ad.zip |
Add a circuit breaker for VERB_PUSH_DIRECT_PATHS.
Diffstat (limited to 'node/IncomingPacket.cpp')
-rw-r--r-- | node/IncomingPacket.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp index b1a9af3b..e985b34c 100644 --- a/node/IncomingPacket.cpp +++ b/node/IncomingPacket.cpp @@ -901,6 +901,11 @@ bool IncomingPacket::_doPUSH_DIRECT_PATHS(const RuntimeEnvironment *RR,const Sha { try { const uint64_t now = RR->node->now(); + if (!peer->shouldRespondToDirectPathPush(now)) { + TRACE("dropped PUSH_DIRECT_PATHS from %s(%s): circuit breaker tripped",source().toString().c_str(),_remoteAddress.toString().c_str()); + return true; + } + const Path *currentBest = peer->getBestPath(now); unsigned int count = at<uint16_t>(ZT_PACKET_IDX_PAYLOAD); |