diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-03-30 17:48:48 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-03-30 17:48:48 -0700 |
commit | 60158aa5dd38c979ed823fc477ab84e8d9e7a43d (patch) | |
tree | 8cdc7091547c8173fdc270ed3d56853ddc5e6da4 /node | |
parent | 3c1a59fa2493c6ab2758934fe1062d82975de158 (diff) | |
download | infinitytier-60158aa5dd38c979ed823fc477ab84e8d9e7a43d.tar.gz infinitytier-60158aa5dd38c979ed823fc477ab84e8d9e7a43d.zip |
Turns out that node/ likely has no business with or need for the system IP routing table. So shelve that code for now.
Diffstat (limited to 'node')
-rw-r--r-- | node/Node.cpp | 3 | ||||
-rw-r--r-- | node/RoutingTable.cpp | 77 | ||||
-rw-r--r-- | node/RoutingTable.hpp | 122 | ||||
-rw-r--r-- | node/RuntimeEnvironment.hpp | 3 |
4 files changed, 0 insertions, 205 deletions
diff --git a/node/Node.cpp b/node/Node.cpp index d013444a..71c2d3fa 100644 --- a/node/Node.cpp +++ b/node/Node.cpp @@ -74,7 +74,6 @@ #include "SoftwareUpdater.hpp" #include "Buffer.hpp" #include "AntiRecursion.hpp" -#include "RoutingTable.hpp" #include "HttpClient.hpp" #include "NetworkConfigMaster.hpp" @@ -126,7 +125,6 @@ struct _NodeImpl Node::Node( const char *hp, EthernetTapFactory *tf, - RoutingTable *rt, SocketManager *sm, NetworkConfigMaster *nm, bool resetIdentity, @@ -140,7 +138,6 @@ Node::Node( else impl->renv.homePath = ZT_DEFAULTS.defaultHomePath; impl->renv.tapFactory = tf; - impl->renv.routingTable = rt; impl->renv.sm = sm; impl->renv.netconfMaster = nm; diff --git a/node/RoutingTable.cpp b/node/RoutingTable.cpp deleted file mode 100644 index bae4bea9..00000000 --- a/node/RoutingTable.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * ZeroTier One - Network Virtualization Everywhere - * Copyright (C) 2011-2015 ZeroTier, Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - * -- - * - * ZeroTier may be used and distributed under the terms of the GPLv3, which - * are available at: http://www.gnu.org/licenses/gpl-3.0.html - * - * If you would like to embed ZeroTier into a commercial application or - * redistribute it in a modified binary form, please contact ZeroTier Networks - * LLC. Start here: http://www.zerotier.com/ - */ - -#include <stdio.h> -#include <stdint.h> -#include <string.h> -#include <stdlib.h> - -#include "Constants.hpp" -#include "RoutingTable.hpp" -#include "Utils.hpp" - -namespace ZeroTier { - -std::string RoutingTable::Entry::toString() const -{ - char tmp[1024]; - Utils::snprintf(tmp,sizeof(tmp),"%s %s %s %d",destination.toString().c_str(),((gateway) ? gateway.toIpString().c_str() : "<link>"),device,metric); - return std::string(tmp); -} - -bool RoutingTable::Entry::operator==(const Entry &re) const -{ - return ((destination == re.destination)&&(gateway == re.gateway)&&(strcmp(device,re.device) == 0)&&(metric == re.metric)); -} - -bool RoutingTable::Entry::operator<(const Entry &re) const -{ - if (destination < re.destination) - return true; - else if (destination == re.destination) { - if (gateway < re.gateway) - return true; - else if (gateway == re.gateway) { - int tmp = (int)::strcmp(device,re.device); - if (tmp < 0) - return true; - else if (tmp == 0) - return (metric < re.metric); - } - } - return false; -} - -RoutingTable::RoutingTable() -{ -} - -RoutingTable::~RoutingTable() -{ -} - -} // namespace ZeroTier diff --git a/node/RoutingTable.hpp b/node/RoutingTable.hpp deleted file mode 100644 index e1c98984..00000000 --- a/node/RoutingTable.hpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * ZeroTier One - Network Virtualization Everywhere - * Copyright (C) 2011-2015 ZeroTier, Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - * -- - * - * ZeroTier may be used and distributed under the terms of the GPLv3, which - * are available at: http://www.gnu.org/licenses/gpl-3.0.html - * - * If you would like to embed ZeroTier into a commercial application or - * redistribute it in a modified binary form, please contact ZeroTier Networks - * LLC. Start here: http://www.zerotier.com/ - */ - -#ifndef ZT_ROUTINGTABLE_HPP -#define ZT_ROUTINGTABLE_HPP - -#include <vector> -#include <string> - -#include "InetAddress.hpp" -#include "NonCopyable.hpp" - -namespace ZeroTier { - -/** - * Base class for OS routing table interfaces - */ -class RoutingTable : NonCopyable -{ -public: - class Entry - { - public: - Entry() throw() { device[0] = (char)0; } - - /** - * Destination IP and netmask bits (CIDR format) - */ - InetAddress destination; - - /** - * Gateway or null address if direct link-level route, netmask/port part of InetAddress not used - */ - InetAddress gateway; - - /** - * System device index or ID (not included in comparison operators, may not be set on all platforms) - */ - int deviceIndex; - - /** - * Metric or hop count -- higher = lower routing priority - */ - int metric; - - /** - * System device name - */ - char device[128]; - - /** - * @return Human-readable representation of this route - */ - std::string toString() const; - - /** - * @return True if at least one required field is present (object is not null) - */ - inline operator bool() const { return ((destination)||(gateway)||(device[0])); } - - bool operator==(const Entry &re) const; - inline bool operator!=(const Entry &re) const { return (!(*this == re)); } - bool operator<(const Entry &re) const; - inline bool operator>(const Entry &re) const { return (re < *this); } - inline bool operator<=(const Entry &re) const { return (!(re < *this)); } - inline bool operator>=(const Entry &re) const { return (!(*this < re)); } - }; - - RoutingTable(); - virtual ~RoutingTable(); - - /** - * Get routing table - * - * @param includeLinkLocal If true, include link-local address routes (default: false) - * @param includeLoopback Include loopback (default: false) - * @return Sorted routing table entries - */ - virtual std::vector<RoutingTable::Entry> get(bool includeLinkLocal = false,bool includeLoopback = false) const = 0; - - /** - * Add or update a routing table entry - * - * If there is no change, the existing entry is returned. Use a value of -1 - * for metric to delete a route. - * - * @param destination Destination IP/netmask - * @param gateway Gateway IP (netmask/port part unused) or NULL/zero for device-level route - * @param device Device name (can be null for gateway routes) - * @param metric Route metric or hop count (higher = lower priority) or negative to delete - * @return Entry or null entry on failure (or delete) - */ - virtual RoutingTable::Entry set(const InetAddress &destination,const InetAddress &gateway,const char *device,int metric) = 0; -}; - -} // namespace ZeroTier - -#endif diff --git a/node/RuntimeEnvironment.hpp b/node/RuntimeEnvironment.hpp index 57a1c262..425c6d84 100644 --- a/node/RuntimeEnvironment.hpp +++ b/node/RuntimeEnvironment.hpp @@ -46,7 +46,6 @@ class SocketManager; class Multicaster; class AntiRecursion; class EthernetTapFactory; -class RoutingTable; class HttpClient; class NetworkConfigMaster; @@ -73,7 +72,6 @@ public: timeOfLastResynchronize(0), timeOfLastPacketReceived(0), tapFactory((EthernetTapFactory *)0), - routingTable((RoutingTable *)0), sm((SocketManager *)0), netconfMaster((NetworkConfigMaster *)0), log((Logger *)0), @@ -110,7 +108,6 @@ public: // These are passed in from outside and are not created or deleted by the ZeroTier node core EthernetTapFactory *tapFactory; - RoutingTable *routingTable; SocketManager *sm; NetworkConfigMaster *netconfMaster; |