diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-06-01 19:05:27 -0700 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-06-01 19:05:27 -0700 |
| commit | 5341e32729e21b1880afe121e5c36bfa9cfefd00 (patch) | |
| tree | a75d370004c93aac321cc6661d379ad0ee007a5b /node/NetworkConfig.cpp | |
| parent | 960ceb479155146455d8c84c002b964cc0e1d47e (diff) | |
| download | infinitytier-5341e32729e21b1880afe121e5c36bfa9cfefd00.tar.gz infinitytier-5341e32729e21b1880afe121e5c36bfa9cfefd00.zip | |
Fix to GitHub issue #140 -- network preferred relays. Also go ahead and allow RENDEZVOUS from regular peers.
Diffstat (limited to 'node/NetworkConfig.cpp')
| -rw-r--r-- | node/NetworkConfig.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/node/NetworkConfig.cpp b/node/NetworkConfig.cpp index 82e986e2..4b9620a6 100644 --- a/node/NetworkConfig.cpp +++ b/node/NetworkConfig.cpp @@ -184,9 +184,11 @@ void NetworkConfig::_fromDictionary(const Dictionary &d) std::vector<std::string> relaysSplit(Utils::split(d.get(ZT_NETWORKCONFIG_DICT_KEY_RELAYS,"").c_str(),",","","")); for(std::vector<std::string>::const_iterator r(relaysSplit.begin());r!=relaysSplit.end();++r) { std::size_t semi(r->find(';')); // address;ip/port,... - if ((semi == ZT_ADDRESS_LENGTH)&&(r->length() > (ZT_ADDRESS_LENGTH + 1))) { - std::pair<Address,InetAddress> relay(Address(r->substr(0,semi)),InetAddress(r->substr(semi+1))); - if ((relay.first)&&(relay.second)) + if (semi == ZT_ADDRESS_LENGTH_HEX) { + std::pair<Address,InetAddress> relay( + Address(r->substr(0,semi)), + ((r->length() > (semi + 1)) ? InetAddress(r->substr(semi + 1)) : InetAddress()) ); + if ((relay.first)&&(!relay.first.isReserved())) _relays.push_back(relay); } } |
