fixed #122
This commit is contained in:
@@ -343,7 +343,7 @@ namespace libtorrent
|
|||||||
// if this is a web seed. we don't have a peer_info struct
|
// if this is a web seed. we don't have a peer_info struct
|
||||||
if (m_peer_info) m_peer_info->seed = true;
|
if (m_peer_info) m_peer_info->seed = true;
|
||||||
// if we're a seed too, disconnect
|
// if we're a seed too, disconnect
|
||||||
if (t->is_seed())
|
if (t->is_finished())
|
||||||
{
|
{
|
||||||
throw std::runtime_error("seed to seed connection redundant, disconnecting");
|
throw std::runtime_error("seed to seed connection redundant, disconnecting");
|
||||||
}
|
}
|
||||||
@@ -917,7 +917,7 @@ namespace libtorrent
|
|||||||
{
|
{
|
||||||
assert(m_peer_info);
|
assert(m_peer_info);
|
||||||
m_peer_info->seed = true;
|
m_peer_info->seed = true;
|
||||||
if (t->is_seed())
|
if (t->is_finished())
|
||||||
{
|
{
|
||||||
throw protocol_error("seed to seed connection redundant, disconnecting");
|
throw protocol_error("seed to seed connection redundant, disconnecting");
|
||||||
}
|
}
|
||||||
@@ -988,7 +988,7 @@ namespace libtorrent
|
|||||||
// if this is a web seed. we don't have a peer_info struct
|
// if this is a web seed. we don't have a peer_info struct
|
||||||
if (m_peer_info) m_peer_info->seed = true;
|
if (m_peer_info) m_peer_info->seed = true;
|
||||||
// if we're a seed too, disconnect
|
// if we're a seed too, disconnect
|
||||||
if (t->is_seed())
|
if (t->is_finished())
|
||||||
{
|
{
|
||||||
throw protocol_error("seed to seed connection redundant, disconnecting");
|
throw protocol_error("seed to seed connection redundant, disconnecting");
|
||||||
}
|
}
|
||||||
@@ -1517,7 +1517,7 @@ namespace libtorrent
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// if we're a seed too, disconnect
|
// if we're a seed too, disconnect
|
||||||
if (t->is_seed())
|
if (t->is_finished())
|
||||||
throw protocol_error("seed to seed connection redundant, disconnecting");
|
throw protocol_error("seed to seed connection redundant, disconnecting");
|
||||||
|
|
||||||
assert(!m_have_piece.empty());
|
assert(!m_have_piece.empty());
|
||||||
@@ -2186,7 +2186,7 @@ namespace libtorrent
|
|||||||
// maintain the share ratio given by m_ratio
|
// maintain the share ratio given by m_ratio
|
||||||
// with all peers.
|
// with all peers.
|
||||||
|
|
||||||
if (t->is_seed() || is_choked() || t->ratio() == 0.0f)
|
if (t->is_finished() || is_choked() || t->ratio() == 0.0f)
|
||||||
{
|
{
|
||||||
// if we have downloaded more than one piece more
|
// if we have downloaded more than one piece more
|
||||||
// than we have uploaded OR if we are a seed
|
// than we have uploaded OR if we are a seed
|
||||||
@@ -2922,7 +2922,7 @@ namespace libtorrent
|
|||||||
if (m_requests.empty()
|
if (m_requests.empty()
|
||||||
&& !m_choked
|
&& !m_choked
|
||||||
&& m_peer_interested
|
&& m_peer_interested
|
||||||
&& t && t->is_seed()
|
&& t && t->is_finished()
|
||||||
&& d > seconds(20)) return true;
|
&& d > seconds(20)) return true;
|
||||||
|
|
||||||
// TODO: as long as we have less than 95% of the
|
// TODO: as long as we have less than 95% of the
|
||||||
|
@@ -528,6 +528,7 @@ namespace libtorrent
|
|||||||
|
|
||||||
int max_failcount = m_torrent->settings().max_failcount;
|
int max_failcount = m_torrent->settings().max_failcount;
|
||||||
int min_reconnect_time = m_torrent->settings().min_reconnect_time;
|
int min_reconnect_time = m_torrent->settings().min_reconnect_time;
|
||||||
|
bool finished = m_torrent->is_finished();
|
||||||
|
|
||||||
aux::session_impl& ses = m_torrent->session();
|
aux::session_impl& ses = m_torrent->session();
|
||||||
|
|
||||||
@@ -536,7 +537,7 @@ namespace libtorrent
|
|||||||
if (i->connection) continue;
|
if (i->connection) continue;
|
||||||
if (i->banned) continue;
|
if (i->banned) continue;
|
||||||
if (i->type == peer::not_connectable) continue;
|
if (i->type == peer::not_connectable) continue;
|
||||||
if (i->seed && m_torrent->is_seed()) continue;
|
if (i->seed && finished) continue;
|
||||||
if (i->failcount >= max_failcount) continue;
|
if (i->failcount >= max_failcount) continue;
|
||||||
if (now - i->connected < seconds(i->failcount * min_reconnect_time))
|
if (now - i->connected < seconds(i->failcount * min_reconnect_time))
|
||||||
continue;
|
continue;
|
||||||
@@ -1191,7 +1192,7 @@ namespace libtorrent
|
|||||||
&& m_torrent->session().num_uploads() < m_torrent->session().max_uploads()
|
&& m_torrent->session().num_uploads() < m_torrent->session().max_uploads()
|
||||||
&& (m_torrent->ratio() == 0
|
&& (m_torrent->ratio() == 0
|
||||||
|| c.share_diff() >= -free_upload_amount
|
|| c.share_diff() >= -free_upload_amount
|
||||||
|| m_torrent->is_seed()))
|
|| m_torrent->is_finished()))
|
||||||
{
|
{
|
||||||
m_torrent->session().unchoke_peer(c);
|
m_torrent->session().unchoke_peer(c);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user