summaryrefslogtreecommitdiff
path: root/node/IncomingPacket.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-08-04 09:51:15 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-08-04 09:51:15 -0700
commit404a0bbddd90ef2fbd624a0089076aac7e9184b4 (patch)
tree1b4dc5fa1331bb34a74bfd44a55f7557baa1303a /node/IncomingPacket.cpp
parentf057bb63cdc4bebc4608f4f2ed6da4656ddbc8a9 (diff)
downloadinfinitytier-404a0bbddd90ef2fbd624a0089076aac7e9184b4.tar.gz
infinitytier-404a0bbddd90ef2fbd624a0089076aac7e9184b4.zip
...
Diffstat (limited to 'node/IncomingPacket.cpp')
-rw-r--r--node/IncomingPacket.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp
index 6548bda6..c7e6e439 100644
--- a/node/IncomingPacket.cpp
+++ b/node/IncomingPacket.cpp
@@ -709,7 +709,7 @@ bool IncomingPacket::_doNETWORK_CREDENTIALS(const RuntimeEnvironment *RR,const S
p += com.deserialize(*this,p);
LockingPtr<Membership> m = peer->membership(com.networkId(),true);
if (!m) return true; // sanity check
- m->addCredential(RR,now,com);
+ if (m->addCredential(RR,now,com) == 1) return false; // wait for WHOIS
}
++p; // skip trailing 0 after COMs if present
@@ -719,14 +719,15 @@ bool IncomingPacket::_doNETWORK_CREDENTIALS(const RuntimeEnvironment *RR,const S
p += cap.deserialize(*this,p);
LockingPtr<Membership> m = peer->membership(cap.networkId(),true);
if (!m) return true; // sanity check
- m->addCredential(RR,now,cap);
+ if (m->addCredential(RR,now,cap) == 1) return false; // wait for WHOIS
}
+
const unsigned int numTags = at<uint16_t>(p); p += 2;
for(unsigned int i=0;i<numTags;++i) {
p += tag.deserialize(*this,p);
LockingPtr<Membership> m = peer->membership(tag.networkId(),true);
if (!m) return true; // sanity check
- m->addCredential(RR,now,tag);
+ if (m->addCredential(RR,now,tag) == 1) return false; // wait for WHOIS
}
}