do not add peers with high failcount to the local dht tracker

This commit is contained in:
Miguel Freitas 2013-10-28 18:05:13 -02:00
parent dea0760664
commit ac76c967ae

View File

@ -2057,25 +2057,25 @@ namespace libtorrent
{ {
TORRENT_ASSERT(m_ses.is_network_thread()); TORRENT_ASSERT(m_ses.is_network_thread());
if (!m_ses.m_dht) return; if (!m_ses.m_dht) return;
if (!m_name) return; if (!m_name) return;
if (!should_announce_dht()) return; if (!should_announce_dht()) return;
TORRENT_ASSERT(m_allow_peers); TORRENT_ASSERT(m_allow_peers);
// [MF] use m_dht->announce with myself=false to update dht tracker with other peers // [MF] use m_dht->announce with myself=false to update dht tracker with peers we know
{ {
policy::const_iterator i = get_policy().begin_peer(); policy::const_iterator i = get_policy().begin_peer();
policy::const_iterator end = get_policy().end_peer(); policy::const_iterator end = get_policy().end_peer();
for (; i != end; ++i) for (; i != end; ++i) {
{ policy::peer const* p = *i;
policy::peer const* p = *i;
if( p->connectable && !p->banned ) { if( p->connectable && !p->banned &&
int(p->failcount) < settings().max_failcount ) {
m_ses.m_dht->announce(name(), m_torrent_file->info_hash() m_ses.m_dht->announce(name(), m_torrent_file->info_hash()
, p->address(), p->port, p->seed, false , p->address(), p->port, p->seed, false
, boost::bind(&nop)); , boost::bind(&nop));
}
} }
}
} }
#ifdef TORRENT_USE_OPENSSL #ifdef TORRENT_USE_OPENSSL