forked from premiere/premiere-libtorrent
fix bug in disconnect candidate torrent function
This commit is contained in:
parent
5afa8c88b9
commit
cd4b38cfc3
|
@ -281,9 +281,9 @@ namespace libtorrent
|
|||
void remove_feed(feed_handle h);
|
||||
void get_feeds(std::vector<feed_handle>* f) const;
|
||||
|
||||
boost::weak_ptr<torrent> find_torrent(sha1_hash const& info_hash);
|
||||
boost::weak_ptr<torrent> find_torrent(std::string const& uuid);
|
||||
boost::weak_ptr<torrent> find_disconnect_candidate_torrent();
|
||||
boost::weak_ptr<torrent> find_torrent(sha1_hash const& info_hash) const;
|
||||
boost::weak_ptr<torrent> find_torrent(std::string const& uuid) const;
|
||||
boost::weak_ptr<torrent> find_disconnect_candidate_torrent() const;
|
||||
|
||||
peer_id const& get_peer_id() const { return m_peer_id; }
|
||||
|
||||
|
|
|
@ -4803,13 +4803,13 @@ retry:
|
|||
|
||||
// the return value from this function is valid only as long as the
|
||||
// session is locked!
|
||||
boost::weak_ptr<torrent> session_impl::find_torrent(sha1_hash const& info_hash)
|
||||
boost::weak_ptr<torrent> session_impl::find_torrent(sha1_hash const& info_hash) const
|
||||
{
|
||||
TORRENT_ASSERT(is_network_thread());
|
||||
|
||||
torrent_map::iterator i = m_torrents.find(info_hash);
|
||||
torrent_map::const_iterator i = m_torrents.find(info_hash);
|
||||
#ifdef TORRENT_DEBUG
|
||||
for (torrent_map::iterator j
|
||||
for (torrent_map::const_iterator j
|
||||
= m_torrents.begin(); j != m_torrents.end(); ++j)
|
||||
{
|
||||
torrent* p = boost::get_pointer(j->second);
|
||||
|
@ -4820,11 +4820,11 @@ retry:
|
|||
return boost::weak_ptr<torrent>();
|
||||
}
|
||||
|
||||
boost::weak_ptr<torrent> session_impl::find_torrent(std::string const& uuid)
|
||||
boost::weak_ptr<torrent> session_impl::find_torrent(std::string const& uuid) const
|
||||
{
|
||||
TORRENT_ASSERT(is_network_thread());
|
||||
|
||||
std::map<std::string, boost::shared_ptr<torrent> >::iterator i
|
||||
std::map<std::string, boost::shared_ptr<torrent> >::const_iterator i
|
||||
= m_uuids.find(uuid);
|
||||
if (i != m_uuids.end()) return i->second;
|
||||
return boost::weak_ptr<torrent>();
|
||||
|
@ -4836,7 +4836,7 @@ retry:
|
|||
{
|
||||
// a torrent with 0 peers is never a good disconnect candidate
|
||||
// since there's nothing to disconnect
|
||||
if ((lhs.second->num_peers() == 0) != (lhs.second->num_peers() == 0))
|
||||
if ((lhs.second->num_peers() == 0) != (rhs.second->num_peers() == 0))
|
||||
return lhs.second->num_peers() != 0;
|
||||
|
||||
// other than that, always prefer to disconnect peers from seeding torrents
|
||||
|
@ -4847,9 +4847,9 @@ retry:
|
|||
return lhs.second->num_peers() > rhs.second->num_peers();
|
||||
}
|
||||
|
||||
boost::weak_ptr<torrent> session_impl::find_disconnect_candidate_torrent()
|
||||
boost::weak_ptr<torrent> session_impl::find_disconnect_candidate_torrent() const
|
||||
{
|
||||
aux::session_impl::torrent_map::iterator i = std::min_element(m_torrents.begin(), m_torrents.end()
|
||||
aux::session_impl::torrent_map::const_iterator i = std::min_element(m_torrents.begin(), m_torrents.end()
|
||||
, boost::bind(&compare_disconnect_torrent, _1, _2));
|
||||
|
||||
TORRENT_ASSERT(i != m_torrents.end());
|
||||
|
|
Loading…
Reference in New Issue