Browse Source

Add ping(), and a logic fix in SelfAwareness.

pull/1/head
Adam Ierymenko 11 years ago
parent
commit
0a90681849
  1. 17
      node/Peer.hpp
  2. 4
      node/SelfAwareness.cpp

17
node/Peer.hpp

@ -182,6 +182,23 @@ public:
*/
void attemptToContactAt(const RuntimeEnvironment *RR,const InetAddress &atAddress,unsigned int linkDesperation,uint64_t now);
/**
* Send a HELLO to all active direct paths
*
* @param RR Runtime environment
* @param now Current time
*/
inline void ping(const RuntimeEnvironment *RR,uint64_t now)
{
unsigned int np = _numPaths;
for(unsigned int p=0;p<np;++p) {
if (_paths[p].active(now)) {
attemptToContactAt(RR,_paths[p].address(),_paths[p].desperation(now),now);
_paths[p].sent(now);
}
}
}
/**
* @return All known direct paths to this peer
*/

4
node/SelfAwareness.cpp

@ -78,7 +78,9 @@ void SelfAwareness::iam(const InetAddress &reporterPhysicalAddress,const InetAdd
else {
Mutex::Lock _l(_lock);
InetAddress &lastPhy = _lastPhysicalAddress[scope - 1];
if ((lastPhy)&&(lastPhy != myPhysicalAddress)) {
if (!lastPhy) {
lastPhy = myPhysicalAddress;
} else if (lastPhy != myPhysicalAddress) {
lastPhy = myPhysicalAddress;
_ResetWithinScope rset(RR,RR->node->now(),(InetAddress::IpScope)scope);
RR->topology->eachPeer<_ResetWithinScope &>(rset);

Loading…
Cancel
Save