optimized policy and removed #warning
This commit is contained in:
@@ -89,7 +89,7 @@ namespace libtorrent
|
|||||||
void new_connection(peer_connection& c);
|
void new_connection(peer_connection& c);
|
||||||
|
|
||||||
// the given connection was just closed
|
// the given connection was just closed
|
||||||
void connection_closed(const peer_connection& c);
|
void connection_closed(const peer_connection& c) throw();
|
||||||
|
|
||||||
// the peer has got at least one interesting piece
|
// the peer has got at least one interesting piece
|
||||||
void peer_is_interesting(peer_connection& c);
|
void peer_is_interesting(peer_connection& c);
|
||||||
|
@@ -1314,35 +1314,30 @@ namespace libtorrent
|
|||||||
}
|
}
|
||||||
|
|
||||||
// this is called whenever a peer connection is closed
|
// this is called whenever a peer connection is closed
|
||||||
void policy::connection_closed(const peer_connection& c) try
|
void policy::connection_closed(const peer_connection& c) throw()
|
||||||
{
|
{
|
||||||
INVARIANT_CHECK;
|
INVARIANT_CHECK;
|
||||||
|
|
||||||
// assert(c.is_disconnecting());
|
peer* p = c.peer_info_struct();
|
||||||
bool unchoked = false;
|
// if we couldn't find the connection in our list, just ignore it.
|
||||||
|
if (p == 0) return;
|
||||||
|
|
||||||
#warning extract policy::peer pointer from c
|
assert(std::find_if(
|
||||||
iterator i = std::find_if(
|
|
||||||
m_peers.begin()
|
m_peers.begin()
|
||||||
, m_peers.end()
|
, m_peers.end()
|
||||||
, match_peer_connection(c));
|
, match_peer_connection(c))
|
||||||
|
!= m_peers.end());
|
||||||
|
assert(p->connection == &c);
|
||||||
|
|
||||||
// if we couldn't find the connection in our list, just ignore it.
|
p->connection = 0;
|
||||||
if (i == m_peers.end()) return;
|
p->optimistically_unchoked = false;
|
||||||
assert(i->connection == &c);
|
|
||||||
i->connection = 0;
|
|
||||||
i->optimistically_unchoked = false;
|
|
||||||
|
|
||||||
i->connected = time_now();
|
p->connected = time_now();
|
||||||
if (!c.is_choked() && !m_torrent->is_aborted())
|
|
||||||
{
|
|
||||||
unchoked = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c.failed())
|
if (c.failed())
|
||||||
{
|
{
|
||||||
++i->failcount;
|
++p->failcount;
|
||||||
// i->connected = time_now();
|
// p->connected = time_now();
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the share ratio is 0 (infinite), the
|
// if the share ratio is 0 (infinite), the
|
||||||
@@ -1354,25 +1349,8 @@ namespace libtorrent
|
|||||||
assert(c.share_diff() < std::numeric_limits<size_type>::max());
|
assert(c.share_diff() < std::numeric_limits<size_type>::max());
|
||||||
m_available_free_upload += c.share_diff();
|
m_available_free_upload += c.share_diff();
|
||||||
}
|
}
|
||||||
i->prev_amount_download += c.statistics().total_payload_download();
|
p->prev_amount_download += c.statistics().total_payload_download();
|
||||||
i->prev_amount_upload += c.statistics().total_payload_upload();
|
p->prev_amount_upload += c.statistics().total_payload_upload();
|
||||||
|
|
||||||
// if (unchoked)
|
|
||||||
// {
|
|
||||||
// if the peer that is diconnecting is unchoked
|
|
||||||
// then unchoke another peer in order to maintain
|
|
||||||
// the total number of unchoked peers
|
|
||||||
// --m_num_unchoked;
|
|
||||||
// if (m_torrent->is_seed()) seed_unchoke_one_peer();
|
|
||||||
// else unchoke_one_peer();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
catch (std::exception& e)
|
|
||||||
{
|
|
||||||
#ifndef NDEBUG
|
|
||||||
std::string err = e.what();
|
|
||||||
#endif
|
|
||||||
assert(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void policy::peer_is_interesting(peer_connection& c)
|
void policy::peer_is_interesting(peer_connection& c)
|
||||||
|
Reference in New Issue
Block a user