forked from premiere/premiere-libtorrent
*** empty log message ***
This commit is contained in:
parent
4e3ea21809
commit
c1ec7e8830
|
@ -346,8 +346,8 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
handles.push_back(ses.add_torrent(argv[i+1], info_hash, save_path));
|
handles.push_back(ses.add_torrent(argv[i+1], info_hash, save_path));
|
||||||
handles.back().set_max_connections(60);
|
handles.back().set_max_connections(60);
|
||||||
handles.back().set_max_uploads(7);
|
handles.back().set_max_uploads(-1);
|
||||||
handles.back().set_ratio(1.1f);
|
// handles.back().set_ratio(1.1f);
|
||||||
++i;
|
++i;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
|
@ -373,9 +373,9 @@ int main(int argc, char* argv[])
|
||||||
catch (boost::filesystem::filesystem_error&) {}
|
catch (boost::filesystem::filesystem_error&) {}
|
||||||
|
|
||||||
handles.push_back(ses.add_torrent(e, save_path, resume_data, true, 64 * 1024));
|
handles.push_back(ses.add_torrent(e, save_path, resume_data, true, 64 * 1024));
|
||||||
handles.back().set_max_connections(100);
|
handles.back().set_max_connections(60);
|
||||||
handles.back().set_max_uploads(-1);
|
handles.back().set_max_uploads(-1);
|
||||||
handles.back().set_ratio(1.02f);
|
// handles.back().set_ratio(1.02f);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (std::exception& e)
|
catch (std::exception& e)
|
||||||
|
|
|
@ -128,9 +128,12 @@ namespace libtorrent
|
||||||
{
|
{
|
||||||
INVARIANT_CHECK;
|
INVARIANT_CHECK;
|
||||||
|
|
||||||
|
// these numbers are used the first second of connection.
|
||||||
|
// then the given upload limits will be applied by running
|
||||||
|
// allocate_resources().
|
||||||
m_ul_bandwidth_quota.min = 10;
|
m_ul_bandwidth_quota.min = 10;
|
||||||
m_ul_bandwidth_quota.max = 400;
|
m_ul_bandwidth_quota.max = std::numeric_limits<int>::max();
|
||||||
m_ul_bandwidth_quota.given = 400;
|
m_ul_bandwidth_quota.given = std::numeric_limits<int>::max();
|
||||||
m_dl_bandwidth_quota.min = 10;
|
m_dl_bandwidth_quota.min = 10;
|
||||||
m_dl_bandwidth_quota.max = std::numeric_limits<int>::max();
|
m_dl_bandwidth_quota.max = std::numeric_limits<int>::max();
|
||||||
m_dl_bandwidth_quota.given = 400;
|
m_dl_bandwidth_quota.given = 400;
|
||||||
|
@ -211,10 +214,13 @@ namespace libtorrent
|
||||||
// upload bandwidth will only be given to connections
|
// upload bandwidth will only be given to connections
|
||||||
// that are part of a torrent. Since this is an incoming
|
// that are part of a torrent. Since this is an incoming
|
||||||
// connection, we have to give it some initial bandwidth
|
// connection, we have to give it some initial bandwidth
|
||||||
// to send the handshake
|
// to send the handshake.
|
||||||
|
// after one second, allocate_resources() will be called
|
||||||
|
// and the correct bandwidth limits will be set on all
|
||||||
|
// connections.
|
||||||
m_ul_bandwidth_quota.min = 10;
|
m_ul_bandwidth_quota.min = 10;
|
||||||
m_ul_bandwidth_quota.max = 400;
|
m_ul_bandwidth_quota.max = std::numeric_limits<int>::max();
|
||||||
m_ul_bandwidth_quota.given = 400;
|
m_ul_bandwidth_quota.given = std::numeric_limits<int>::max();
|
||||||
|
|
||||||
m_dl_bandwidth_quota.min = 10;
|
m_dl_bandwidth_quota.min = 10;
|
||||||
m_dl_bandwidth_quota.max = std::numeric_limits<int>::max();
|
m_dl_bandwidth_quota.max = std::numeric_limits<int>::max();
|
||||||
|
|
|
@ -697,6 +697,8 @@ namespace libtorrent
|
||||||
// rotate, unchoke one peer here
|
// rotate, unchoke one peer here
|
||||||
// and let the next condiional block
|
// and let the next condiional block
|
||||||
// make sure another peer is choked.
|
// make sure another peer is choked.
|
||||||
|
// TODO: This rotation should happen
|
||||||
|
// far less frequent than this!
|
||||||
seed_unchoke_one_peer();
|
seed_unchoke_one_peer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -990,8 +992,27 @@ namespace libtorrent
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when a peer is interested in us
|
// called when a peer is interested in us
|
||||||
void policy::interested(peer_connection&)
|
void policy::interested(peer_connection& c)
|
||||||
{
|
{
|
||||||
|
// if the peer is choked and we have upload slots left,
|
||||||
|
// then unchoke it. Another condition that has to be met
|
||||||
|
// is that the torrent doesn't keep track of the individual
|
||||||
|
// up/down ratio for each peer (ratio == 0) or (if it does
|
||||||
|
// keep track) this particular connection isn't a leecher.
|
||||||
|
// If the peer was choked because it was leeching, don't
|
||||||
|
// unchoke it again.
|
||||||
|
// The exception to this last condition is if we're a seed.
|
||||||
|
// In that case we don't care if people are leeching, they
|
||||||
|
// can't pay for their downloads anyway.
|
||||||
|
if (c.is_choked()
|
||||||
|
&& m_num_unchoked < m_torrent->m_uploads_quota.given
|
||||||
|
&& (m_torrent->ratio() == 0)
|
||||||
|
|| (c.share_diff() >= -free_upload_amount
|
||||||
|
|| m_torrent->is_seed()))
|
||||||
|
{
|
||||||
|
c.send_unchoke();
|
||||||
|
++m_num_unchoked;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when a peer is no longer interested in us
|
// called when a peer is no longer interested in us
|
||||||
|
|
Loading…
Reference in New Issue