summaryrefslogtreecommitdiff
path: root/node/Switch.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-01-27 14:05:09 -0800
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-01-27 14:05:09 -0800
commit0b3b994241161c996c8432a2fb25e47b0f84c359 (patch)
tree561d93d4d873c1ca0175c73f3ab2b9c4cc310bff /node/Switch.cpp
parentbc218f9414bd6e4124eb223c7c69c5ac254befff (diff)
downloadinfinitytier-0b3b994241161c996c8432a2fb25e47b0f84c359.tar.gz
infinitytier-0b3b994241161c996c8432a2fb25e47b0f84c359.zip
Relay policy can now be computed.
Diffstat (limited to 'node/Switch.cpp')
-rw-r--r--node/Switch.cpp27
1 files changed, 5 insertions, 22 deletions
diff --git a/node/Switch.cpp b/node/Switch.cpp
index 04624f03..f935b7aa 100644
--- a/node/Switch.cpp
+++ b/node/Switch.cpp
@@ -105,17 +105,8 @@ void Switch::onRemotePacket(const InetAddress &localAddr,const InetAddress &from
const Address destination(fragment.destination());
if (destination != RR->identity.address()) {
- switch(RR->node->relayPolicy()) {
- case ZT_RELAY_POLICY_ALWAYS:
- break;
- case ZT_RELAY_POLICY_TRUSTED:
- if (!path->trustEstablished(now))
- return;
- break;
- // case ZT_RELAY_POLICY_NEVER:
- default:
- return;
- }
+ if ( (!RR->topology->amRoot()) && (!path->trustEstablished(now)) )
+ return;
if (fragment.hops() < ZT_RELAY_MAX_HOPS) {
fragment.incrementHops();
@@ -213,18 +204,10 @@ void Switch::onRemotePacket(const InetAddress &localAddr,const InetAddress &from
//TRACE("<< %.16llx %s -> %s (size: %u)",(unsigned long long)packet->packetId(),source.toString().c_str(),destination.toString().c_str(),packet->size());
+
if (destination != RR->identity.address()) {
- switch(RR->node->relayPolicy()) {
- case ZT_RELAY_POLICY_ALWAYS:
- break;
- case ZT_RELAY_POLICY_TRUSTED:
- if (!path->trustEstablished(now))
- return;
- break;
- // case ZT_RELAY_POLICY_NEVER:
- default:
- return;
- }
+ if ( (!RR->topology->amRoot()) && (!path->trustEstablished(now)) )
+ return;
Packet packet(data,len);