summaryrefslogtreecommitdiff
path: root/node/Switch.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2015-07-06 15:28:48 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2015-07-06 15:28:48 -0700
commit79e9a8bcc26491a43577082ec7edb86020f7ec00 (patch)
treeb6a834f0f826185c562921260b75bdd6e6659c32 /node/Switch.cpp
parentfad9dff2db26662e1496329057884b3b928cb1c9 (diff)
downloadinfinitytier-79e9a8bcc26491a43577082ec7edb86020f7ec00.tar.gz
infinitytier-79e9a8bcc26491a43577082ec7edb86020f7ec00.zip
Almost everything for GitHub issue #180 except direct path map setup.
Diffstat (limited to 'node/Switch.cpp')
-rw-r--r--node/Switch.cpp24
1 files changed, 2 insertions, 22 deletions
diff --git a/node/Switch.cpp b/node/Switch.cpp
index 7600624f..6a0b07cd 100644
--- a/node/Switch.cpp
+++ b/node/Switch.cpp
@@ -49,8 +49,7 @@
namespace ZeroTier {
Switch::Switch(const RuntimeEnvironment *renv) :
- RR(renv),
- _lastBeacon(0)
+ RR(renv)
{
}
@@ -61,9 +60,7 @@ Switch::~Switch()
void Switch::onRemotePacket(const InetAddress &fromAddr,const void *data,unsigned int len)
{
try {
- if (len == ZT_PROTO_BEACON_LENGTH) {
- _handleBeacon(fromAddr,Buffer<ZT_PROTO_BEACON_LENGTH>(data,len));
- } else if (len > ZT_PROTO_MIN_FRAGMENT_LENGTH) {
+ if (len > ZT_PROTO_MIN_FRAGMENT_LENGTH) {
if (((const unsigned char *)data)[ZT_PACKET_FRAGMENT_IDX_FRAGMENT_INDICATOR] == ZT_PACKET_FRAGMENT_INDICATOR) {
_handleRemotePacketFragment(fromAddr,data,len);
} else if (len >= ZT_PROTO_MIN_PACKET_LENGTH) {
@@ -696,23 +693,6 @@ void Switch::_handleRemotePacketHead(const InetAddress &fromAddr,const void *dat
}
}
-void Switch::_handleBeacon(const InetAddress &fromAddr,const Buffer<ZT_PROTO_BEACON_LENGTH> &data)
-{
- Address beaconAddr(data.field(ZT_PROTO_BEACON_IDX_ADDRESS,ZT_ADDRESS_LENGTH),ZT_ADDRESS_LENGTH);
- if (beaconAddr == RR->identity.address())
- return;
- SharedPtr<Peer> peer(RR->topology->getPeer(beaconAddr));
- if (peer) {
- const uint64_t now = RR->node->now();
- if ((now - _lastBeacon) >= ZT_MIN_BEACON_RESPONSE_INTERVAL) {
- _lastBeacon = now;
- Packet outp(peer->address(),RR->identity.address(),Packet::VERB_NOP);
- outp.armor(peer->key(),false);
- RR->node->putPacket(fromAddr,outp.data(),outp.size());
- }
- }
-}
-
Address Switch::_sendWhoisRequest(const Address &addr,const Address *peersAlreadyConsulted,unsigned int numPeersAlreadyConsulted)
{
SharedPtr<Peer> root(RR->topology->getBestRoot(peersAlreadyConsulted,numPeersAlreadyConsulted,false));