summaryrefslogtreecommitdiff
path: root/node/Membership.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-02-06 16:38:48 -0800
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-02-06 16:38:48 -0800
commit78d548458be2dd9b7520e95a285d94a6a9f86c75 (patch)
treed0918c03926ee59792d9cc1e69bca8839cfe7718 /node/Membership.cpp
parentac3e883c05e97ff7ffea48e18e2d578f729df91c (diff)
downloadinfinitytier-78d548458be2dd9b7520e95a285d94a6a9f86c75.tar.gz
infinitytier-78d548458be2dd9b7520e95a285d94a6a9f86c75.zip
Capabilities basically work but need to refactor a bit for performance reasons.
Diffstat (limited to 'node/Membership.cpp')
-rw-r--r--node/Membership.cpp16
1 files changed, 5 insertions, 11 deletions
diff --git a/node/Membership.cpp b/node/Membership.cpp
index d7c7c0e6..f847b465 100644
--- a/node/Membership.cpp
+++ b/node/Membership.cpp
@@ -32,7 +32,6 @@ namespace ZeroTier {
Membership::Membership() :
_lastUpdatedMulticast(0),
- _lastPushAttempt(0),
_lastPushedCom(0),
_comRevocationThreshold(0)
{
@@ -42,12 +41,7 @@ Membership::Membership() :
void Membership::pushCredentials(const RuntimeEnvironment *RR,const uint64_t now,const Address &peerAddress,const NetworkConfig &nconf,int localCapabilityIndex,const bool force)
{
- // This limits how often we go through this logic, which prevents us from
- // doing all this for every single packet or other event.
- if ( ((now - _lastPushAttempt) < 1000ULL) && (!force) )
- return;
- _lastPushAttempt = now;
-
+ //TRACE("pushCredentials() to %s localCapabilityIndex==%d force==%d",peerAddress.toString().c_str(),localCapabilityIndex,(int)force);
try {
unsigned int localTagPtr = 0;
bool needCom = ( (nconf.com) && ( ((now - _lastPushedCom) >= ZT_CREDENTIAL_PUSH_EVERY) || (force) ) );
@@ -182,21 +176,21 @@ Membership::AddCredentialResult Membership::addCredential(const RuntimeEnvironme
_RemoteCapability *have = ((htmp != &(_remoteCaps[ZT_MAX_NETWORK_CAPABILITIES]))&&((*htmp)->id == (uint64_t)cap.id())) ? *htmp : (_RemoteCapability *)0;
if (have) {
if ( (!_isCredentialTimestampValid(nconf,cap,*have)) || (have->cap.timestamp() > cap.timestamp()) ) {
- TRACE("addCredential(Tag) for %s on %.16llx REJECTED (revoked or too old)",cap.issuedTo().toString().c_str(),cap.networkId());
+ TRACE("addCredential(Capability) for %s on %.16llx REJECTED (revoked or too old)",cap.issuedTo().toString().c_str(),cap.networkId());
return ADD_REJECTED;
}
if (have->cap == cap) {
- TRACE("addCredential(Tag) for %s on %.16llx ACCEPTED (redundant)",cap.issuedTo().toString().c_str(),cap.networkId());
+ TRACE("addCredential(Capability) for %s on %.16llx ACCEPTED (redundant)",cap.issuedTo().toString().c_str(),cap.networkId());
return ADD_ACCEPTED_REDUNDANT;
}
}
switch(cap.verify(RR)) {
default:
- TRACE("addCredential(Tag) for %s on %.16llx REJECTED (invalid)",cap.issuedTo().toString().c_str(),cap.networkId());
+ TRACE("addCredential(Capability) for %s on %.16llx REJECTED (invalid)",cap.issuedTo().toString().c_str(),cap.networkId());
return ADD_REJECTED;
case 0:
- TRACE("addCredential(Tag) for %s on %.16llx ACCEPTED (new)",cap.issuedTo().toString().c_str(),cap.networkId());
+ TRACE("addCredential(Capability) for %s on %.16llx ACCEPTED (new)",cap.issuedTo().toString().c_str(),cap.networkId());
if (!have) have = _newCapability(cap.id());
have->lastReceived = RR->node->now();
have->cap = cap;