From 2c8321be1f6b0001912d336843a855dde3043adb Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Sat, 4 Oct 2014 13:15:02 -0700 Subject: Pull logic to always send new multicasts to supernode since we need to do that differently, re-add support for active bridges, and remove some gratuitous use of std::set where not needed. --- node/NetworkConfig.cpp | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'node/NetworkConfig.cpp') diff --git a/node/NetworkConfig.cpp b/node/NetworkConfig.cpp index e45407a5..f200ffc2 100644 --- a/node/NetworkConfig.cpp +++ b/node/NetworkConfig.cpp @@ -54,18 +54,22 @@ SharedPtr NetworkConfig::createTestNetworkConfig(const Address &s return nc; } -std::set NetworkConfig::allowedEtherTypes() const +std::vector NetworkConfig::allowedEtherTypes() const { - std::set ets; - for(unsigned int i=0;i>= 1; - ++et; + std::vector ets; + if ((_etWhitelist[0] & 1) != 0) { + ets.push_back(0); + } else { + for(unsigned int i=0;i>= 1; + ++et; + } } } } @@ -139,17 +143,21 @@ void NetworkConfig::_fromDictionary(const Dictionary &d) default: // ignore unrecognized address types or junk/empty fields continue; } - _staticIps.insert(addr); + _staticIps.push_back(addr); } + std::sort(_staticIps.begin(),_staticIps.end()); + std::unique(_staticIps.begin(),_staticIps.end()); std::vector activeBridgesSplit(Utils::split(d.get(ZT_NETWORKCONFIG_DICT_KEY_ACTIVE_BRIDGES,"").c_str(),",","","")); for(std::vector::const_iterator a(activeBridgesSplit.begin());a!=activeBridgesSplit.end();++a) { if (a->length() == ZT_ADDRESS_LENGTH_HEX) { // ignore empty or garbage fields Address tmp(*a); if (!tmp.isReserved()) - _activeBridges.insert(tmp); + _activeBridges.push_back(tmp); } } + std::sort(_activeBridges.begin(),_activeBridges.end()); + std::unique(_activeBridges.begin(),_activeBridges.end()); Dictionary multicastRateEntries(d.get(ZT_NETWORKCONFIG_DICT_KEY_MULTICAST_RATES,std::string())); for(Dictionary::const_iterator i(multicastRateEntries.begin());i!=multicastRateEntries.end();++i) { -- cgit v1.2.3