summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2016-04-12 12:16:29 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2016-04-12 12:16:29 -0700
commit51fecc0be933c3d6e82044c4e2c28aa841733995 (patch)
treeed916b858cf5a9f79307a7473517888964836112 /node
parent6f854c8391d94857b00f76ffaf127d087ccf130f (diff)
downloadinfinitytier-51fecc0be933c3d6e82044c4e2c28aa841733995.tar.gz
infinitytier-51fecc0be933c3d6e82044c4e2c28aa841733995.zip
Refactor Network for new NetworkConfig.
Diffstat (limited to 'node')
-rw-r--r--node/Network.cpp20
-rw-r--r--node/Network.hpp4
2 files changed, 13 insertions, 11 deletions
diff --git a/node/Network.cpp b/node/Network.cpp
index 9b416f5e..6577b65f 100644
--- a/node/Network.cpp
+++ b/node/Network.cpp
@@ -354,13 +354,14 @@ void Network::_externalConfig(ZT_VirtualNetworkConfig *ec) const
ec->nwid = _id;
ec->mac = _mac.toInt();
if (_config)
- Utils::scopy(ec->name,sizeof(ec->name),_config.name().c_str());
+ Utils::scopy(ec->name,sizeof(ec->name),_config.name());
else ec->name[0] = (char)0;
ec->status = _status();
ec->type = (_config) ? (_config.isPrivate() ? ZT_NETWORK_TYPE_PRIVATE : ZT_NETWORK_TYPE_PUBLIC) : ZT_NETWORK_TYPE_PRIVATE;
ec->mtu = ZT_IF_MTU;
ec->dhcp = 0;
- ec->bridge = (_config) ? (_config.allowPassiveBridging() || (std::find(_config.activeBridges().begin(),_config.activeBridges().end(),RR->identity.address()) != _config.activeBridges().end())) ? 1 : 0) : 0;
+ std::vector<Address> ab(_config.activeBridges());
+ ec->bridge = ((_config.allowPassiveBridging())||(std::find(ab.begin(),ab.end(),RR->identity.address()) != ab.end())) ? 1 : 0;
ec->broadcastEnabled = (_config) ? (_config.enableBroadcast() ? 1 : 0) : 0;
ec->portError = _portError;
ec->enabled = (_enabled) ? 1 : 0;
@@ -372,13 +373,14 @@ void Network::_externalConfig(ZT_VirtualNetworkConfig *ec) const
ec->multicastSubscriptions[i].adi = _myMulticastGroups[i].adi();
}
- if (_config) {
- ec->assignedAddressCount = (unsigned int)_config.staticIps().size();
- for(unsigned long i=0;i<ZT_MAX_ZT_ASSIGNED_ADDRESSES;++i) {
- if (i < _config.staticIps().size())
- memcpy(&(ec->assignedAddresses[i]),&(_config.staticIps()[i]),sizeof(struct sockaddr_storage));
- }
- } else ec->assignedAddressCount = 0;
+ std::vector<InetAddress> sips(_config.staticIps());
+ ec->assignedAddressCount = 0;
+ for(unsigned long i=0;i<ZT_MAX_ZT_ASSIGNED_ADDRESSES;++i) {
+ if (i < sips.size()) {
+ memcpy(&(ec->assignedAddresses[i]),&(sips[i]),sizeof(struct sockaddr_storage));
+ ++ec->assignedAddressCount;
+ } else memset(&(ec->assignedAddresses[i]),0,sizeof(struct sockaddr_storage));
+ }
}
bool Network::_isAllowed(const SharedPtr<Peer> &peer) const
diff --git a/node/Network.hpp b/node/Network.hpp
index 8b86c851..14f8f89a 100644
--- a/node/Network.hpp
+++ b/node/Network.hpp
@@ -230,7 +230,7 @@ public:
*
* @return Network configuration (may be a null config if we don't have one yet)
*/
- inline const NetworkConfig &config() const { return _config };
+ inline const NetworkConfig &config() const { return _config; }
/**
* @return A thread-safe copy of our NetworkConfig instead of a const reference
@@ -238,7 +238,7 @@ public:
inline NetworkConfig configCopy() const
{
Mutex::Lock _l(_lock);
- return config;
+ return _config;
}
/**