diff --git a/node/Membership.cpp b/node/Membership.cpp index 59058a3e1..f1bd94aa7 100644 --- a/node/Membership.cpp +++ b/node/Membership.cpp @@ -81,28 +81,39 @@ bool Membership::sendCredentialsIfNeeded(const RuntimeEnvironment *RR,const uint int Membership::addCredential(const RuntimeEnvironment *RR,const CertificateOfMembership &com) { - TRACE("addCredential(COM) for %.16llx signed by %s issued to %s",com.networkId(),com.signedBy().toString().c_str(),com.issuedTo().toString().c_str()); - if (_com == com) + if (_com == com) { + TRACE("addCredential(CertificateOfMembership) for %s on %.16llx ACCEPTED (redundant)",com.issuedTo().toString().c_str(),com.networkId()); return 0; + } const int vr = com.verify(RR); - if ((vr == 0)&&(com.timestamp().first > _com.timestamp().first)) - _com = com; + if (vr == 0) { + TRACE("addCredential(CertificateOfMembership) for %s on %.16llx ACCEPTED (new)",com.issuedTo().toString().c_str(),com.networkId()); + if (com.timestamp().first > _com.timestamp().first) + _com = com; + } else { + TRACE("addCredential(CertificateOfMembership) for %s on %.16llx REJECTED (%d)",com.issuedTo().toString().c_str(),com.networkId(),vr); + } return vr; } int Membership::addCredential(const RuntimeEnvironment *RR,const Tag &tag) { TState *t = _tags.get(tag.id()); - if ((t)&&(t->lastReceived != 0)&&(t->tag == tag)) + if ((t)&&(t->lastReceived != 0)&&(t->tag == tag)) { + TRACE("addCredential(Tag) for %s on %.16llx ACCEPTED (redundant)",tag.issuedTo().toString().c_str(),tag.networkId()); return 0; + } const int vr = tag.verify(RR); if (vr == 0) { + TRACE("addCredential(Tag) for %s on %.16llx ACCEPTED (new)",tag.issuedTo().toString().c_str(),tag.networkId()); if (!t) t = &(_tags[tag.id()]); if (t->tag.timestamp() <= tag.timestamp()) { t->lastReceived = RR->node->now(); t->tag = tag; } + } else { + TRACE("addCredential(Tag) for %s on %.16llx REJECTED (%d)",tag.issuedTo().toString().c_str(),tag.networkId(),vr); } return vr; } @@ -110,10 +121,13 @@ int Membership::addCredential(const RuntimeEnvironment *RR,const Tag &tag) int Membership::addCredential(const RuntimeEnvironment *RR,const Capability &cap) { std::map::iterator c(_caps.find(cap.id())); - if ((c != _caps.end())&&(c->second.lastReceived != 0)&&(c->second.cap == cap)) + if ((c != _caps.end())&&(c->second.lastReceived != 0)&&(c->second.cap == cap)) { + TRACE("addCredential(Capability) for %s on %.16llx ACCEPTED (redundant)",cap.issuedTo().toString().c_str(),cap.networkId()); return 0; + } const int vr = cap.verify(RR); if (vr == 0) { + TRACE("addCredential(Capability) for %s on %.16llx ACCEPTED (new)",cap.issuedTo().toString().c_str(),cap.networkId()); if (c == _caps.end()) { CState &c2 = _caps[cap.id()]; c2.lastReceived = RR->node->now(); @@ -122,6 +136,8 @@ int Membership::addCredential(const RuntimeEnvironment *RR,const Capability &cap c->second.lastReceived = RR->node->now(); c->second.cap = cap; } + } else { + TRACE("addCredential(Capability) for %s on %.16llx REJECTED (%d)",cap.issuedTo().toString().c_str(),cap.networkId(),vr); } return vr; }