From a5383d83d8ab8ce23cb1d12f8add0a3529c85506 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 26 Aug 2016 15:25:00 -0700 Subject: [PATCH] Do not TEE or REDIRECT to self. --- node/Network.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/node/Network.cpp b/node/Network.cpp index 047ecdc5b..4081d4e9b 100644 --- a/node/Network.cpp +++ b/node/Network.cpp @@ -165,8 +165,9 @@ static int _doZtFilter( continue; case ZT_NETWORK_RULE_ACTION_TEE: case ZT_NETWORK_RULE_ACTION_REDIRECT: { - if (!noRedirect) { - Packet outp(Address(rules[rn].v.fwd.address),RR->identity.address(),Packet::VERB_EXT_FRAME); + const Address fwdAddr(rules[rn].v.fwd.address); + if ((!noRedirect)&&(fwdAddr != RR->identity.address())) { + Packet outp(fwdAddr,RR->identity.address(),Packet::VERB_EXT_FRAME); outp.append(nconf.networkId); outp.append((uint8_t)( ((rt == ZT_NETWORK_RULE_ACTION_REDIRECT) ? 0x04 : 0x02) | (inbound ? 0x08 : 0x00) )); macDest.appendTo(outp);