mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-24 15:16:40 +00:00
Gateways support in NetworkConfig object.
This commit is contained in:
parent
96a58becf8
commit
edbc5d3588
@ -163,6 +163,13 @@ void NetworkConfig::_fromDictionary(const Dictionary &d)
|
|||||||
std::sort(_staticIps.begin(),_staticIps.end());
|
std::sort(_staticIps.begin(),_staticIps.end());
|
||||||
std::unique(_staticIps.begin(),_staticIps.end());
|
std::unique(_staticIps.begin(),_staticIps.end());
|
||||||
|
|
||||||
|
std::vector<std::string> gatewaysSplit(Utils::split(d.get(ZT_NETWORKCONFIG_DICT_KEY_GATEWAYS,"").c_str(),",","",""));
|
||||||
|
for(std::vector<std::string>::const_iterator gwstr(gatewaysSplit.begin());gwstr!=gatewaysSplit.end();++gwstr) {
|
||||||
|
InetAddress gw(*gwstr);
|
||||||
|
if ((std::find(_gateways.begin(),_gateways.end(),gw) == _gateways.end())&&((gw.ss_family == AF_INET)||(gw.ss_family == AF_INET6)))
|
||||||
|
_gateways.push_back(gw);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<std::string> activeBridgesSplit(Utils::split(d.get(ZT_NETWORKCONFIG_DICT_KEY_ACTIVE_BRIDGES,"").c_str(),",","",""));
|
std::vector<std::string> activeBridgesSplit(Utils::split(d.get(ZT_NETWORKCONFIG_DICT_KEY_ACTIVE_BRIDGES,"").c_str(),",","",""));
|
||||||
for(std::vector<std::string>::const_iterator a(activeBridgesSplit.begin());a!=activeBridgesSplit.end();++a) {
|
for(std::vector<std::string>::const_iterator a(activeBridgesSplit.begin());a!=activeBridgesSplit.end();++a) {
|
||||||
if (a->length() == ZT_ADDRESS_LENGTH_HEX) { // ignore empty or garbage fields
|
if (a->length() == ZT_ADDRESS_LENGTH_HEX) { // ignore empty or garbage fields
|
||||||
|
@ -183,6 +183,7 @@ public:
|
|||||||
inline const std::string &name() const throw() { return _name; }
|
inline const std::string &name() const throw() { return _name; }
|
||||||
inline const std::string &description() const throw() { return _description; }
|
inline const std::string &description() const throw() { return _description; }
|
||||||
inline const std::vector<InetAddress> &staticIps() const throw() { return _staticIps; }
|
inline const std::vector<InetAddress> &staticIps() const throw() { return _staticIps; }
|
||||||
|
inline const std::vector<InetAddress> &gateways() const throw() { return _gateways; }
|
||||||
inline const std::vector<Address> &activeBridges() const throw() { return _activeBridges; }
|
inline const std::vector<Address> &activeBridges() const throw() { return _activeBridges; }
|
||||||
inline const std::vector< std::pair<Address,InetAddress> > &relays() const throw() { return _relays; }
|
inline const std::vector< std::pair<Address,InetAddress> > &relays() const throw() { return _relays; }
|
||||||
inline const CertificateOfMembership &com() const throw() { return _com; }
|
inline const CertificateOfMembership &com() const throw() { return _com; }
|
||||||
@ -225,6 +226,7 @@ private:
|
|||||||
std::string _name;
|
std::string _name;
|
||||||
std::string _description;
|
std::string _description;
|
||||||
std::vector<InetAddress> _staticIps;
|
std::vector<InetAddress> _staticIps;
|
||||||
|
std::vector<InetAddress> _gateways;
|
||||||
std::vector<Address> _activeBridges;
|
std::vector<Address> _activeBridges;
|
||||||
std::vector< std::pair<Address,InetAddress> > _relays;
|
std::vector< std::pair<Address,InetAddress> > _relays;
|
||||||
std::map<MulticastGroup,MulticastRate> _multicastRates;
|
std::map<MulticastGroup,MulticastRate> _multicastRates;
|
||||||
|
Loading…
Reference in New Issue
Block a user