From 5341e32729e21b1880afe121e5c36bfa9cfefd00 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 1 Jun 2015 19:05:27 -0700 Subject: Fix to GitHub issue #140 -- network preferred relays. Also go ahead and allow RENDEZVOUS from regular peers. --- node/NetworkConfig.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'node/NetworkConfig.cpp') 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 relaysSplit(Utils::split(d.get(ZT_NETWORKCONFIG_DICT_KEY_RELAYS,"").c_str(),",","","")); for(std::vector::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 relay(Address(r->substr(0,semi)),InetAddress(r->substr(semi+1))); - if ((relay.first)&&(relay.second)) + if (semi == ZT_ADDRESS_LENGTH_HEX) { + std::pair 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); } } -- cgit v1.2.3