summaryrefslogtreecommitdiff
path: root/node/IncomingPacket.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-02-13 16:38:21 -0800
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-02-13 16:38:21 -0800
commitaf4e79735c3f97d4228472077bcd5d2ddfb2cb93 (patch)
treec891b3213a1664ba294fc864886036f659a00ce1 /node/IncomingPacket.cpp
parent969e09210d89f4cecf01920d8315f984ea59245e (diff)
downloadinfinitytier-af4e79735c3f97d4228472077bcd5d2ddfb2cb93.tar.gz
infinitytier-af4e79735c3f97d4228472077bcd5d2ddfb2cb93.zip
Fix "orbit" semantics. Federation works.
Diffstat (limited to 'node/IncomingPacket.cpp')
-rw-r--r--node/IncomingPacket.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/node/IncomingPacket.cpp b/node/IncomingPacket.cpp
index 41a06937..b077f7e2 100644
--- a/node/IncomingPacket.cpp
+++ b/node/IncomingPacket.cpp
@@ -455,16 +455,16 @@ bool IncomingPacket::_doOK(const RuntimeEnvironment *RR,const SharedPtr<Peer> &p
// Handle planet or moon updates if present
if ((ptr + 2) <= size()) {
- const unsigned int worldLen = at<uint16_t>(ptr); ptr += 2;
- if (RR->topology->isUpstream(peer->identity())) {
- const unsigned int endOfWorlds = ptr + worldLen;
+ const unsigned int worldsLen = at<uint16_t>(ptr); ptr += 2;
+ if (RR->topology->shouldAcceptWorldUpdateFrom(peer->address())) {
+ const unsigned int endOfWorlds = ptr + worldsLen;
while (ptr < endOfWorlds) {
World w;
ptr += w.deserialize(*this,ptr);
RR->topology->addWorld(w,false);
}
} else {
- ptr += worldLen;
+ ptr += worldsLen;
}
}