summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-09-27 16:33:37 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-09-27 16:33:37 -0700
commit0b44919ba23021231dd561f530c5d30836846735 (patch)
tree1d3075b301c5a2e7139fb9b415eb4baef3601212 /node
parent9f550292fe0ebc32e61eeada9e3a69970c874724 (diff)
downloadinfinitytier-0b44919ba23021231dd561f530c5d30836846735.tar.gz
infinitytier-0b44919ba23021231dd561f530c5d30836846735.zip
Clusters can send multiple OKs so we must allow this.
Diffstat (limited to 'node')
-rw-r--r--node/IncomingPacket.cpp5
-rw-r--r--node/Node.hpp8
2 files changed, 6 insertions, 7 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp
index f54752d1..b77ead4c 100644
--- a/node/IncomingPacket.cpp
+++ b/node/IncomingPacket.cpp
@@ -1481,14 +1481,15 @@ bool IncomingPacket::_doREQUEST_PROOF_OF_WORK(const RuntimeEnvironment *RR,const
void IncomingPacket::_sendErrorNeedCredentials(const RuntimeEnvironment *RR,const SharedPtr<Peer> &peer,const uint64_t nwid)
{
- if (peer->rateGateOutgoingComRequest(RR->node->now())) {
+ const uint64_t now = RR->node->now();
+ if (peer->rateGateOutgoingComRequest(now)) {
Packet outp(source(),RR->identity.address(),Packet::VERB_ERROR);
outp.append((uint8_t)verb());
outp.append(packetId());
outp.append((uint8_t)Packet::ERROR_NEED_MEMBERSHIP_CERTIFICATE);
outp.append(nwid);
outp.armor(peer->key(),true);
- _path->send(RR,outp.data(),outp.size(),RR->node->now());
+ _path->send(RR,outp.data(),outp.size(),now);
}
}
diff --git a/node/Node.hpp b/node/Node.hpp
index ddc52651..11462531 100644
--- a/node/Node.hpp
+++ b/node/Node.hpp
@@ -267,19 +267,17 @@ public:
}
/**
- * Check whether a given packet ID is something we are expecting a reply to (and erase from list)
+ * Check whether a given packet ID is something we are expecting a reply to
*
* @param packetId Packet ID to check
* @return True if we're expecting a reply
*/
- inline bool expectingReplyTo(const uint64_t packetId)
+ inline bool expectingReplyTo(const uint64_t packetId) const
{
const unsigned long bucket = (unsigned long)(packetId & ZT_EXPECTING_REPLIES_BUCKET_MASK1);
for(unsigned long i=0;i<=ZT_EXPECTING_REPLIES_BUCKET_MASK2;++i) {
- if (_expectingRepliesTo[bucket][i] == packetId) {
- _expectingRepliesTo[bucket][i] = 0;
+ if (_expectingRepliesTo[bucket][i] == packetId)
return true;
- }
}
return false;
}