diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-08-26 15:25:00 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2016-08-26 15:25:00 -0700 |
commit | a5383d83d8ab8ce23cb1d12f8add0a3529c85506 (patch) | |
tree | 2213685591f72ffb388386f23287ef778c257ea1 /node | |
parent | a3c7627acffc1f425477d9cd5c740980b31e5f1e (diff) | |
download | infinitytier-a5383d83d8ab8ce23cb1d12f8add0a3529c85506.tar.gz infinitytier-a5383d83d8ab8ce23cb1d12f8add0a3529c85506.zip |
Do not TEE or REDIRECT to self.
Diffstat (limited to 'node')
-rw-r--r-- | node/Network.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/node/Network.cpp b/node/Network.cpp index 047ecdc5..4081d4e9 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); |