made end-game mode less aggressive

This commit is contained in:
Arvid Norberg
2010-02-18 17:26:21 +00:00
parent d892198a40
commit f31e670fc2
4 changed files with 40 additions and 2 deletions

View File

@@ -2012,6 +2012,7 @@ namespace libtorrent
info.peer = peer;
info.num_peers = 1;
++dp.requested;
dp.last_request = time_now();
}
else
{
@@ -2036,6 +2037,7 @@ namespace libtorrent
}
++info.num_peers;
if (i->state == none) i->state = state;
i->last_request = time_now();
}
return true;
}
@@ -2058,6 +2060,23 @@ namespace libtorrent
return info.num_peers;
}
ptime piece_picker::last_request(int piece) const
{
TORRENT_ASSERT(piece >= 0);
TORRENT_ASSERT(piece < (int)m_piece_map.size());
piece_pos const& p = m_piece_map[piece];
if (!p.downloading) return min_time();
std::vector<downloading_piece>::const_iterator i
= std::find_if(m_downloads.begin(), m_downloads.end(), has_index(piece));
TORRENT_ASSERT(i != m_downloads.end());
// just to play it safe
if (i == m_downloads.end()) return min_time();
return i->last_request;
}
void piece_picker::get_availability(std::vector<int>& avail) const
{
TORRENT_ASSERT(m_seeds >= 0);