From 4b7eaf8cbea4158a1635053ce4fe051e03ba56a6 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Mon, 24 Dec 2007 08:17:32 +0000 Subject: [PATCH] fixed connect candidate logic, to prefer peers with less failures --- src/policy.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/policy.cpp b/src/policy.cpp index 29f135ab0..ec361e571 100755 --- a/src/policy.cpp +++ b/src/policy.cpp @@ -533,6 +533,12 @@ namespace libtorrent if (i->second.type == peer::not_connectable) continue; if (i->second.seed && finished) continue; if (i->second.failcount >= max_failcount) continue; + + // prefer peers with lower failcount + if (candidate != m_peers.end() + && candidate->second.failcount < i->second.failcount) + continue; + if (now - i->second.connected < seconds(i->second.failcount * min_reconnect_time)) continue; if (ses.m_port_filter.access(i->second.ip.port()) & port_filter::blocked)