mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-20 21:43:08 +00:00
Clean up some credential push stuff.
This commit is contained in:
parent
877f86a896
commit
cd70fefc5e
@ -169,7 +169,7 @@ bool IncomingPacket::_doERROR(const RuntimeEnvironment *RR,void *tPtr,const Shar
|
||||
const SharedPtr<Network> network(RR->node->network(networkId));
|
||||
const int64_t now = RR->node->now();
|
||||
if ((network)&&(network->config().com))
|
||||
network->pushCredentialsNow(tPtr,peer->address(),now);
|
||||
network->peerRequestedCredentials(tPtr,peer->address(),now);
|
||||
} break;
|
||||
|
||||
case Packet::ERROR_NETWORK_ACCESS_DENIED_: {
|
||||
|
@ -64,15 +64,7 @@ public:
|
||||
*/
|
||||
void pushCredentials(const RuntimeEnvironment *RR,void *tPtr,const int64_t now,const Address &peerAddress,const NetworkConfig &nconf);
|
||||
|
||||
/**
|
||||
* @param now Current time
|
||||
* @param lastReceivedCredentials Time we last received updated credentials from the controller
|
||||
* @return True if we haven't pushed credentials in a long time (to cause proactive credential push)
|
||||
*/
|
||||
inline bool shouldPushCredentials(const int64_t now, const int64_t lastReceivedCredentials) const
|
||||
{
|
||||
return ((now - _lastPushedCredentials) > ZT_PEER_ACTIVITY_TIMEOUT) || (lastReceivedCredentials > _lastPushedCredentials);
|
||||
}
|
||||
inline int64_t lastPushedCredentials() { return _lastPushedCredentials; }
|
||||
|
||||
/**
|
||||
* Check whether we should push MULTICAST_LIKEs to this peer, and update last sent time if true
|
||||
|
@ -372,7 +372,7 @@ public:
|
||||
* @param to Destination peer address
|
||||
* @param now Current time
|
||||
*/
|
||||
inline void pushCredentialsNow(void *tPtr,const Address &to,const int64_t now)
|
||||
inline void peerRequestedCredentials(void *tPtr,const Address &to,const int64_t now)
|
||||
{
|
||||
Mutex::Lock _l(_lock);
|
||||
_membership(to).pushCredentials(RR,tPtr,now,to,_config);
|
||||
@ -389,7 +389,8 @@ public:
|
||||
{
|
||||
Mutex::Lock _l(_lock);
|
||||
Membership &m = _membership(to);
|
||||
if (m.shouldPushCredentials(now, _lastConfigUpdate))
|
||||
const int64_t lastPushed = m.lastPushedCredentials();
|
||||
if ((lastPushed < _lastConfigUpdate)||((now - lastPushed) > ZT_PEER_ACTIVITY_TIMEOUT))
|
||||
m.pushCredentials(RR,tPtr,now,to,_config);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user