summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2013-10-25 13:43:04 -0400
committerAdam Ierymenko <adam.ierymenko@gmail.com>2013-10-25 13:43:04 -0400
commit010616e3ae2edcf294b0d4b8f0679fd94c6a1f2a (patch)
tree1134fbef2920a59993327ab7d8bc9a9abad122f1
parent1505e8dd504711f38e5d975022c3c5366e87791a (diff)
downloadinfinitytier-010616e3ae2edcf294b0d4b8f0679fd94c6a1f2a.tar.gz
infinitytier-010616e3ae2edcf294b0d4b8f0679fd94c6a1f2a.zip
Add some more TRACE output for certs.
-rw-r--r--node/Network.cpp8
-rw-r--r--node/Network.hpp2
-rw-r--r--node/PacketDecoder.cpp4
3 files changed, 12 insertions, 2 deletions
diff --git a/node/Network.cpp b/node/Network.cpp
index 43cd83a2..ad85cd77 100644
--- a/node/Network.cpp
+++ b/node/Network.cpp
@@ -142,6 +142,9 @@ void Network::requestConfiguration()
void Network::addMembershipCertificate(const CertificateOfMembership &cert)
{
+ if (!cert) // sanity check
+ return;
+
Mutex::Lock _l(_lock);
// We go ahead and accept certs provisionally even if _isOpen is true, since
@@ -149,8 +152,10 @@ void Network::addMembershipCertificate(const CertificateOfMembership &cert)
// These will be purged on clean() for open networks eventually.
CertificateOfMembership &old = _membershipCertificates[cert.issuedTo()];
- if (cert.timestamp() >= old.timestamp())
+ if (cert.timestamp() >= old.timestamp()) {
+ TRACE("got new certificate for %s on network %.16llx",cert.issuedTo().toString().c_str(),cert.networkId());
old = cert;
+ }
}
bool Network::isAllowed(const Address &peer) const
@@ -230,6 +235,7 @@ void Network::_pushMembershipCertificate(const Address &peer,bool force,uint64_t
uint64_t &lastPushed = _lastPushedMembershipCertificate[peer];
if ((force)||((now - lastPushed) > pushTimeout)) {
lastPushed = now;
+ TRACE("pushing membership cert for %.16llx to %s",(unsigned long long)_id,peer.toString().c_str());
Packet outp(peer,_r->identity.address(),Packet::VERB_NETWORK_MEMBERSHIP_CERTIFICATE);
_config->com().serialize(outp);
diff --git a/node/Network.hpp b/node/Network.hpp
index ecee77c1..696aa84b 100644
--- a/node/Network.hpp
+++ b/node/Network.hpp
@@ -322,6 +322,8 @@ public:
}
/**
+ * Get current network config or return NULL
+ *
* @return Network configuration -- may be NULL
*/
inline SharedPtr<NetworkConfig> config2() const
diff --git a/node/PacketDecoder.cpp b/node/PacketDecoder.cpp
index 9f348bed..43ac8c29 100644
--- a/node/PacketDecoder.cpp
+++ b/node/PacketDecoder.cpp
@@ -847,8 +847,10 @@ bool PacketDecoder::_doNETWORK_CONFIG_REFRESH(const RuntimeEnvironment *_r,const
while ((ptr + sizeof(uint64_t)) <= size()) {
uint64_t nwid = at<uint64_t>(ptr); ptr += sizeof(uint64_t);
SharedPtr<Network> nw(_r->nc->network(nwid));
- if ((nw)&&(source() == nw->controller())) // only respond to requests from controller
+ if ((nw)&&(source() == nw->controller())) { // only respond to requests from controller
+ TRACE("NETWORK_CONFIG_REFRESH from %s, refreshing network %.16llx",source().toString().c_str(),nwid);
nw->requestConfiguration();
+ }
}
} catch (std::exception &exc) {
TRACE("dropped NETWORK_CONFIG_REFRESH from %s(%s): unexpected exception: %s",source().toString().c_str(),_remoteAddress.toString().c_str(),exc.what());