forked from premiere/premiere-libtorrent
*** empty log message ***
This commit is contained in:
parent
6d614bc6d3
commit
7af8beff02
|
@ -170,6 +170,9 @@ namespace libtorrent
|
||||||
peer* find_unchoke_candidate();
|
peer* find_unchoke_candidate();
|
||||||
|
|
||||||
|
|
||||||
|
void connect_peer(peer *);
|
||||||
|
|
||||||
|
|
||||||
bool connect_one_peer();
|
bool connect_one_peer();
|
||||||
bool disconnect_one_peer();
|
bool disconnect_one_peer();
|
||||||
peer* find_disconnect_candidate();
|
peer* find_disconnect_candidate();
|
||||||
|
|
|
@ -208,7 +208,7 @@ namespace libtorrent
|
||||||
int toGive = 1+std::min(max_give-1,r->used);
|
int toGive = 1+std::min(max_give-1,r->used);
|
||||||
resources_to_distribute-=give(r,toGive);
|
resources_to_distribute-=give(r,toGive);
|
||||||
}
|
}
|
||||||
#elif 1
|
#elif 0
|
||||||
size_type total_used=0;
|
size_type total_used=0;
|
||||||
size_type max_used=0;
|
size_type max_used=0;
|
||||||
for(int i = 0;i < (int)requests.size();++i)
|
for(int i = 0;i < (int)requests.size();++i)
|
||||||
|
@ -288,13 +288,13 @@ namespace libtorrent
|
||||||
kNumer=1;
|
kNumer=1;
|
||||||
kDenom=max_used;
|
kDenom=max_used;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if(kNumer > kDenom)
|
if(kNumer > kDenom)
|
||||||
{
|
{
|
||||||
kNumer=1;
|
kNumer=1;
|
||||||
kDenom=1;
|
kDenom=1;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
for(int i = 0;i < (int)requests.size() && resources_to_distribute;++i)
|
for(int i = 0;i < (int)requests.size() && resources_to_distribute;++i)
|
||||||
{
|
{
|
||||||
resource_request *r=requests[i];
|
resource_request *r=requests[i];
|
||||||
|
|
|
@ -1232,7 +1232,7 @@ namespace libtorrent
|
||||||
// client has sent us. This is the mean to
|
// client has sent us. This is the mean to
|
||||||
// maintain the share ratio given by m_ratio
|
// maintain the share ratio given by m_ratio
|
||||||
// with all peers.
|
// with all peers.
|
||||||
|
/*
|
||||||
if (m_torrent->is_seed() || is_choked() || m_torrent->ratio()==0.0f)
|
if (m_torrent->is_seed() || is_choked() || m_torrent->ratio()==0.0f)
|
||||||
{
|
{
|
||||||
// if we have downloaded more than one piece more
|
// if we have downloaded more than one piece more
|
||||||
|
@ -1241,19 +1241,19 @@ namespace libtorrent
|
||||||
if(!m_send_buffer.empty() || (!m_requests.empty() && !is_choked()))
|
if(!m_send_buffer.empty() || (!m_requests.empty() && !is_choked()))
|
||||||
upload_bandwidth.wanted = std::numeric_limits<int>::max();
|
upload_bandwidth.wanted = std::numeric_limits<int>::max();
|
||||||
else
|
else
|
||||||
upload_bandwidth.wanted = 0;
|
upload_bandwidth.wanted = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
double bias = 0x20000 + m_free_upload;
|
double bias = 0x20000 + m_free_upload;
|
||||||
|
|
||||||
double break_even_time = 10;
|
double break_even_time = 5;
|
||||||
double have_uploaded = (double)m_statistics.total_payload_upload();
|
double have_uploaded = (double)m_statistics.total_payload_upload();
|
||||||
double have_downloaded = (double)m_statistics.total_payload_download();
|
double have_downloaded = (double)m_statistics.total_payload_download();
|
||||||
double download_speed = m_statistics.download_rate();
|
double download_speed = m_statistics.download_rate();
|
||||||
|
|
||||||
double soon_downloaded =
|
double soon_downloaded =
|
||||||
have_downloaded+download_speed * 2 * break_even_time;
|
have_downloaded+download_speed * 1.5 * break_even_time;
|
||||||
|
|
||||||
double upload_speed_limit = (soon_downloaded*m_torrent->ratio()
|
double upload_speed_limit = (soon_downloaded*m_torrent->ratio()
|
||||||
- have_uploaded + bias) / break_even_time;
|
- have_uploaded + bias) / break_even_time;
|
||||||
|
@ -1263,8 +1263,8 @@ namespace libtorrent
|
||||||
|
|
||||||
upload_bandwidth.wanted = (int) upload_speed_limit;
|
upload_bandwidth.wanted = (int) upload_speed_limit;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
size_type diff = share_diff();
|
size_type diff = share_diff();
|
||||||
|
|
||||||
enum { block_limit = 2 }; // how many blocks difference is considered unfair
|
enum { block_limit = 2 }; // how many blocks difference is considered unfair
|
||||||
|
@ -1300,7 +1300,6 @@ namespace libtorrent
|
||||||
// the maximum send_quota given our download rate from this peer
|
// the maximum send_quota given our download rate from this peer
|
||||||
if (upload_bandwidth.wanted < 256) upload_bandwidth.wanted = 256;
|
if (upload_bandwidth.wanted < 256) upload_bandwidth.wanted = 256;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------
|
// --------------------------
|
||||||
|
|
|
@ -779,9 +779,7 @@ namespace libtorrent
|
||||||
|
|
||||||
if(m_torrent->num_peers() < m_max_connections)
|
if(m_torrent->num_peers() < m_max_connections)
|
||||||
{
|
{
|
||||||
i->connection = &m_torrent->connect_to_peer(remote);
|
connect_peer(&*i);
|
||||||
i->connected = boost::posix_time::second_clock::local_time();
|
|
||||||
m_last_optimistic_disconnect=boost::posix_time::second_clock::local_time();
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -910,13 +908,20 @@ namespace libtorrent
|
||||||
assert(!p->banned);
|
assert(!p->banned);
|
||||||
assert(!p->connection);
|
assert(!p->connection);
|
||||||
assert(p->type==peer::connectable);
|
assert(p->type==peer::connectable);
|
||||||
|
|
||||||
|
connect_peer(p);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void policy::connect_peer(peer *p)
|
||||||
|
{
|
||||||
p->connection = &m_torrent->connect_to_peer(p->id);
|
p->connection = &m_torrent->connect_to_peer(p->id);
|
||||||
p->connection->add_stat(p->prev_amount_download, p->prev_amount_upload);
|
p->connection->add_stat(p->prev_amount_download, p->prev_amount_upload);
|
||||||
p->prev_amount_download = 0;
|
p->prev_amount_download = 0;
|
||||||
p->prev_amount_upload = 0;
|
p->prev_amount_upload = 0;
|
||||||
p->connected = boost::posix_time::second_clock::local_time();
|
p->connected =
|
||||||
return true;
|
m_last_optimistic_disconnect =
|
||||||
|
boost::posix_time::second_clock::local_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool policy::disconnect_one_peer()
|
bool policy::disconnect_one_peer()
|
||||||
|
@ -940,8 +945,6 @@ namespace libtorrent
|
||||||
assert(i->connection == &c);
|
assert(i->connection == &c);
|
||||||
|
|
||||||
i->connected = boost::posix_time::second_clock::local_time();
|
i->connected = boost::posix_time::second_clock::local_time();
|
||||||
i->prev_amount_download += c.statistics().total_payload_download();
|
|
||||||
i->prev_amount_upload += c.statistics().total_payload_upload();
|
|
||||||
if (!i->connection->is_choked() && !m_torrent->is_aborted())
|
if (!i->connection->is_choked() && !m_torrent->is_aborted())
|
||||||
{
|
{
|
||||||
--m_num_unchoked;
|
--m_num_unchoked;
|
||||||
|
@ -956,6 +959,8 @@ namespace libtorrent
|
||||||
assert(i->connection->share_diff() < std::numeric_limits<int>::max());
|
assert(i->connection->share_diff() < std::numeric_limits<int>::max());
|
||||||
m_available_free_upload += i->connection->share_diff();
|
m_available_free_upload += i->connection->share_diff();
|
||||||
}
|
}
|
||||||
|
i->prev_amount_download += c.statistics().total_payload_download();
|
||||||
|
i->prev_amount_upload += c.statistics().total_payload_upload();
|
||||||
i->connection = 0;
|
i->connection = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -454,8 +454,6 @@ namespace libtorrent
|
||||||
p.id = peer->get_peer_id();
|
p.id = peer->get_peer_id();
|
||||||
p.ip = peer->get_socket()->sender();
|
p.ip = peer->get_socket()->sender();
|
||||||
|
|
||||||
// TODO: add the prev_amount_downloaded and prev_amount_uploaded
|
|
||||||
// from the peer list in the policy
|
|
||||||
p.total_download = statistics.total_payload_download();
|
p.total_download = statistics.total_payload_download();
|
||||||
p.total_upload = statistics.total_payload_upload();
|
p.total_upload = statistics.total_payload_upload();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue