From 29ec7bf3a2e70fcf3b38a39cf00e8dd7ac9e0818 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 1 Feb 2017 14:18:56 -0800 Subject: Add more specific check in source==self case instead of dumping it. --- node/Switch.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'node/Switch.cpp') diff --git a/node/Switch.cpp b/node/Switch.cpp index fdf889ea..cddf0f66 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -199,6 +199,14 @@ 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()); +#ifdef ZT_ENABLE_CLUSTER + if ( (source == RR->identity.address()) && ((!RR->cluster)||(!RR->cluster->isClusterPeerFrontplane(fromAddr))) ) + return; +#else + if (source == RR->identity.address()) + return; +#endif + if (destination != RR->identity.address()) { if ( (!RR->topology->amRoot()) && (!path->trustEstablished(now)) ) return; @@ -206,7 +214,12 @@ void Switch::onRemotePacket(const InetAddress &localAddr,const InetAddress &from Packet packet(data,len); if (packet.hops() < ZT_RELAY_MAX_HOPS) { +#ifdef ZT_ENABLE_CLUSTER + if (source != RR->identity.address()) + packet.incrementHops(); +#else packet.incrementHops(); +#endif SharedPtr relayTo = RR->topology->getPeer(destination); if ((relayTo)&&((relayTo->sendDirect(packet.data(),packet.size(),now,false)))) { -- cgit v1.2.3