From 51fecc0be933c3d6e82044c4e2c28aa841733995 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 12 Apr 2016 12:16:29 -0700 Subject: [PATCH] Refactor Network for new NetworkConfig. --- node/Network.cpp | 20 +++++++++++--------- node/Network.hpp | 4 ++-- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/node/Network.cpp b/node/Network.cpp index 9b416f5e6..6577b65f1 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
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;iassignedAddresses[i]),&(_config.staticIps()[i]),sizeof(struct sockaddr_storage)); - } - } else ec->assignedAddressCount = 0; + std::vector sips(_config.staticIps()); + ec->assignedAddressCount = 0; + for(unsigned long i=0;iassignedAddresses[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) const diff --git a/node/Network.hpp b/node/Network.hpp index 8b86c8514..14f8f89a9 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; } /**