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/Switch.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/Switch.cpp')
| -rw-r--r-- | node/Switch.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/node/Switch.cpp b/node/Switch.cpp index d01d77ca..0aa0b664 100644 --- a/node/Switch.cpp +++ b/node/Switch.cpp @@ -741,9 +741,11 @@ bool Switch::_trySend(const Packet &packet,bool encrypt,uint64_t nwid) if (nconf) { unsigned int latency = ~((unsigned int)0); for(std::vector< std::pair<Address,InetAddress> >::const_iterator r(nconf->relays().begin());r!=nconf->relays().end();++r) { - SharedPtr<Peer> rp(RR->topology->getPeer(r->first)); - if ((rp->hasActiveDirectPath(now))&&(rp->latency() <= latency)) - rp.swap(relay); + if (r->first != peer->address()) { + SharedPtr<Peer> rp(RR->topology->getPeer(r->first)); + if ((rp)&&(rp->hasActiveDirectPath(now))&&(rp->latency() <= latency)) + rp.swap(relay); + } } } } |
