Merge gateways and routes in netconf since they are the same thing.

This commit is contained in:
Adam Ierymenko 2016-05-06 10:57:53 -07:00
parent 9da8bf37d7
commit 0f17077b3d
4 changed files with 35 additions and 57 deletions

View file

@ -278,17 +278,6 @@ public:
*/
inline const CertificateOfMembership &com() const throw() { return _com; }
/**
* @return Network/netmask routes that are considered local to this virtual LAN interface
*/
inline std::vector<InetAddress> localRoutes() const
{
std::vector<InetAddress> r;
for(unsigned int i=0;i<_localRouteCount;++i)
r.push_back(_localRoutes[i]);
return r;
}
/**
* @return ZeroTier-managed static IPs assigned to this device on this network
*/
@ -300,17 +289,6 @@ public:
return r;
}
/**
* @return ZeroTier-managed default gateways (for full tunnel) available on this network
*/
inline std::vector<InetAddress> gateways() const
{
std::vector<InetAddress> r;
for(unsigned int i=0;i<_gatewayCount;++i)
r.push_back(_gateways[i]);
return r;
}
/**
* @return ZeroTier addresses of devices on this network designated as active bridges
*/
@ -436,18 +414,16 @@ public:
for(unsigned int i=0;i<_specialistCount;++i)
b.append((uint64_t)_specialists[i]);
b.append((uint16_t)_localRouteCount);
for(unsigned int i=0;i<_localRouteCount;++i)
_localRoutes[i].serialize(b);
b.append((uint16_t)_routeCount);
for(unsigned int i=0;i<_routeCount;++i) {
reinterpret_cast<const InetAddress *>(&(_routes[i].target))->serialize(b);
reinterpret_cast<const InetAddress *>(&(_routes[i].via))->serialize(b);
}
b.append((uint16_t)_staticIpCount);
for(unsigned int i=0;i<_staticIpCount;++i)
_staticIps[i].serialize(b);
b.append((uint16_t)_gatewayCount);
for(unsigned int i=0;i<_gatewayCount;++i)
_gateways[i].serialize(b);
b.append((uint16_t)_staticCount);
for(unsigned int i=0;i<_staticCount;++i) {
_static[i].zt.appendTo(b);
@ -568,11 +544,12 @@ public:
_specialists[i] = b.template at<uint64_t>(p); p += 8;
}
_localRouteCount = (unsigned int)b.template at<uint16_t>(p); p += 2;
if (_localRouteCount > ZT_MAX_NETWORK_LOCAL_ROUTES)
throw std::invalid_argument("overflow (local routes)");
for(unsigned int i=0;i<_localRouteCount;++i) {
p += _localRoutes[i].deserialize(b,p);
_routeCount = (unsigned int)b.template at<uint16_t>(p); p += 2;
if (_routeCount > ZT_MAX_NETWORK_ROUTES)
throw std::invalid_argument("overflow (routes)");
for(unsigned int i=0;i<_routeCount;++i) {
p += reinterpret_cast<InetAddress *>(&(_routes[i].target))->deserialize(b,p);
p += reinterpret_cast<InetAddress *>(&(_routes[i].via))->deserialize(b,p);
}
_staticIpCount = (unsigned int)b.template at<uint16_t>(p); p += 2;
@ -582,13 +559,6 @@ public:
p += _staticIps[i].deserialize(b,p);
}
_gatewayCount = (unsigned int)b.template at<uint16_t>(p); p += 2;
if (_gatewayCount > ZT_MAX_NETWORK_GATEWAYS)
throw std::invalid_argument("overflow (gateways)");
for(unsigned int i=0;i<_gatewayCount;++i) {
p += _gateways[i].deserialize(b,p);
}
_staticCount = (unsigned int)b.template at<uint16_t>(p); p += 2;
if (_staticCount > ZT_MAX_NETWORK_STATIC_PHYSICAL_ADDRESSES)
throw std::invalid_argument("overflow (static addresses)");
@ -688,9 +658,8 @@ protected: // protected so that a subclass can fill this out in network controll
uint64_t _specialists[ZT_MAX_NETWORK_SPECIALISTS];
// ZeroTier-managed IPs and routing table entries and stuff
InetAddress _localRoutes[ZT_MAX_NETWORK_LOCAL_ROUTES];
ZT_VirtualNetworkRoute _routes[ZT_MAX_NETWORK_ROUTES];
InetAddress _staticIps[ZT_MAX_ZT_ASSIGNED_ADDRESSES];
InetAddress _gateways[ZT_MAX_NETWORK_GATEWAYS];
// ZeroTier to physical static mappings
struct {
@ -702,9 +671,8 @@ protected: // protected so that a subclass can fill this out in network controll
ZT_VirtualNetworkRule _rules[ZT_MAX_NETWORK_RULES];
unsigned int _specialistCount;
unsigned int _localRouteCount;
unsigned int _routeCount;
unsigned int _staticIpCount;
unsigned int _gatewayCount;
unsigned int _staticCount;
unsigned int _ruleCount;