forked from premiere/premiere-libtorrent
remove special handling of uTP peers
This commit is contained in:
parent
5bb5ba145f
commit
1ebc5f9ef2
|
@ -1,3 +1,4 @@
|
||||||
|
* uTP connections are no longer exempt from rate limits by default
|
||||||
* fix exporting files from partfile while seeding
|
* fix exporting files from partfile while seeding
|
||||||
* fix potential deadlock on Windows, caused by performing restricted
|
* fix potential deadlock on Windows, caused by performing restricted
|
||||||
tasks from within DllMain
|
tasks from within DllMain
|
||||||
|
|
|
@ -891,13 +891,11 @@ based peer class assignment:
|
||||||
ip_filter f;
|
ip_filter f;
|
||||||
|
|
||||||
// for every IPv4 address, assign the global peer class
|
// for every IPv4 address, assign the global peer class
|
||||||
f.add_rule(address_v4::from_string("0.0.0.0")
|
f.add_rule(make_address("0.0.0.0"), make_address("255.255.255.255"), mask);
|
||||||
, address_v4::from_string("255.255.255.255")
|
|
||||||
, mask);
|
|
||||||
|
|
||||||
// for every IPv6 address, assign the global peer class
|
// for every IPv6 address, assign the global peer class
|
||||||
f.add_rule(address_v6::from_string("::")
|
f.add_rule(make_address("::")
|
||||||
, address_v6::from_string("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
|
, make_address("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
|
||||||
, mask);
|
, mask);
|
||||||
ses.set_peer_class_filter(f);
|
ses.set_peer_class_filter(f);
|
||||||
|
|
||||||
|
@ -905,7 +903,7 @@ To make uTP sockets exempt from rate limiting:
|
||||||
|
|
||||||
.. code:: c++
|
.. code:: c++
|
||||||
|
|
||||||
peer_class_type_filter flt;
|
peer_class_type_filter flt = ses.get_peer_class_type_filter();
|
||||||
// filter out the global and local peer class for uTP sockets, if these
|
// filter out the global and local peer class for uTP sockets, if these
|
||||||
// classes are set by the IP filter
|
// classes are set by the IP filter
|
||||||
flt.disallow(peer_class_type_filter::utp_socket, session::global_peer_class_id);
|
flt.disallow(peer_class_type_filter::utp_socket, session::global_peer_class_id);
|
||||||
|
@ -925,14 +923,10 @@ To make all peers on the internal network unthrottled:
|
||||||
ip_filter f;
|
ip_filter f;
|
||||||
|
|
||||||
// for every IPv4 address, assign the global peer class
|
// for every IPv4 address, assign the global peer class
|
||||||
f.add_rule(address_v4::from_string("0.0.0.0")
|
f.add_rule(make_address("0.0.0.0"), make_address("255.255.255.255"), mask);
|
||||||
, address_v4::from_string("255.255.255.255")
|
|
||||||
, mask);
|
|
||||||
|
|
||||||
// for every address on the local metwork, set the mastk to 0
|
// for every address on the local metwork, set the mask to 0
|
||||||
f.add_rule(address_v4::from_string("10.0.0.0")
|
f.add_rule(make_address("10.0.0.0"), make_address("10.255.255.255"), 0);
|
||||||
, address_v4::from_string("10.255.255.255")
|
|
||||||
, 0);
|
|
||||||
ses.set_peer_class_filter(f);
|
ses.set_peer_class_filter(f);
|
||||||
|
|
||||||
SSL torrents
|
SSL torrents
|
||||||
|
|
|
@ -408,8 +408,8 @@ namespace libtorrent
|
||||||
// -1 means unlimited on these settings just like their counterpart
|
// -1 means unlimited on these settings just like their counterpart
|
||||||
// functions on torrent_handle
|
// functions on torrent_handle
|
||||||
//
|
//
|
||||||
// For fine grained control over rate limits, including making them apply
|
// For fine grained control over rate limits depending on various
|
||||||
// to local peers, see peer-classes_.
|
// properties of the peer connection, see peer-classes_.
|
||||||
int max_uploads;
|
int max_uploads;
|
||||||
int max_connections;
|
int max_connections;
|
||||||
int upload_limit;
|
int upload_limit;
|
||||||
|
|
|
@ -632,10 +632,9 @@ namespace libtorrent
|
||||||
//
|
//
|
||||||
// .. code:: c++
|
// .. code:: c++
|
||||||
//
|
//
|
||||||
// ip_filter f;
|
// ip_filter f = ses.get_peer_class_filter();
|
||||||
// peer_class_t my_class = ses.create_peer_class("200.1.x.x IP range");
|
// peer_class_t const my_class = ses.create_peer_class("200.1.x.x IP range");
|
||||||
// f.add_rule(address_v4::from_string("200.1.1.0")
|
// f.add_rule(make_address("200.1.1.0"), make_address("200.1.255.255")
|
||||||
// , address_v4::from_string("200.1.255.255")
|
|
||||||
// , 1 << my_class);
|
// , 1 << my_class);
|
||||||
// ses.set_peer_class_filter(f);
|
// ses.set_peer_class_filter(f);
|
||||||
//
|
//
|
||||||
|
@ -682,7 +681,7 @@ namespace libtorrent
|
||||||
// make sure to create those early on, to get low identifiers.
|
// make sure to create those early on, to get low identifiers.
|
||||||
//
|
//
|
||||||
// For more information on peer classes, see peer-classes_.
|
// For more information on peer classes, see peer-classes_.
|
||||||
int create_peer_class(char const* name);
|
peer_class_t create_peer_class(char const* name);
|
||||||
|
|
||||||
// This call dereferences the reference count of the specified peer
|
// This call dereferences the reference count of the specified peer
|
||||||
// class. When creating a peer class it's automatically referenced by 1.
|
// class. When creating a peer class it's automatically referenced by 1.
|
||||||
|
@ -701,7 +700,7 @@ namespace libtorrent
|
||||||
// destructs.
|
// destructs.
|
||||||
//
|
//
|
||||||
// For more information on peer classes, see peer-classes_.
|
// For more information on peer classes, see peer-classes_.
|
||||||
void delete_peer_class(int cid);
|
void delete_peer_class(peer_class_t cid);
|
||||||
|
|
||||||
// These functions queries information from a peer class and updates the
|
// These functions queries information from a peer class and updates the
|
||||||
// configuration of a peer class, respectively.
|
// configuration of a peer class, respectively.
|
||||||
|
@ -718,8 +717,8 @@ namespace libtorrent
|
||||||
// account.
|
// account.
|
||||||
//
|
//
|
||||||
// For more information, see peer-classes_.
|
// For more information, see peer-classes_.
|
||||||
peer_class_info get_peer_class(int cid);
|
peer_class_info get_peer_class(peer_class_t cid);
|
||||||
void set_peer_class(int cid, peer_class_info const& pci);
|
void set_peer_class(peer_class_t cid, peer_class_info const& pci);
|
||||||
|
|
||||||
#ifndef TORRENT_NO_DEPRECATE
|
#ifndef TORRENT_NO_DEPRECATE
|
||||||
// if the listen port failed in some way you can retry to listen on
|
// if the listen port failed in some way you can retry to listen on
|
||||||
|
|
|
@ -522,9 +522,9 @@ namespace libtorrent
|
||||||
// libtorrent API.
|
// libtorrent API.
|
||||||
report_web_seed_downloads,
|
report_web_seed_downloads,
|
||||||
|
|
||||||
|
#ifndef TORRENT_NO_DEPRECATE
|
||||||
// set to true if uTP connections should be rate limited This option
|
// set to true if uTP connections should be rate limited This option
|
||||||
// is *DEPRECATED*, please use set_peer_class_filter() instead.
|
// is *DEPRECATED*, please use set_peer_class_filter() instead.
|
||||||
#ifndef TORRENT_NO_DEPRECATE
|
|
||||||
rate_limit_utp TORRENT_DEPRECATED_ENUM,
|
rate_limit_utp TORRENT_DEPRECATED_ENUM,
|
||||||
#else
|
#else
|
||||||
deprecated2,
|
deprecated2,
|
||||||
|
|
|
@ -511,9 +511,6 @@ namespace aux {
|
||||||
m_peer_class_type_filter.add(peer_class_type_filter::ssl_tcp_socket, m_tcp_peer_class);
|
m_peer_class_type_filter.add(peer_class_type_filter::ssl_tcp_socket, m_tcp_peer_class);
|
||||||
m_peer_class_type_filter.add(peer_class_type_filter::i2p_socket, m_tcp_peer_class);
|
m_peer_class_type_filter.add(peer_class_type_filter::i2p_socket, m_tcp_peer_class);
|
||||||
|
|
||||||
// TODO: there's no rule here to make uTP connections not have the global or
|
|
||||||
// local rate limits apply to it. This used to be the default.
|
|
||||||
|
|
||||||
#ifndef TORRENT_DISABLE_LOGGING
|
#ifndef TORRENT_DISABLE_LOGGING
|
||||||
|
|
||||||
session_log("config: %s version: %s revision: %s"
|
session_log("config: %s version: %s revision: %s"
|
||||||
|
@ -1279,7 +1276,7 @@ namespace aux {
|
||||||
return m_classes.new_peer_class(name);
|
return m_classes.new_peer_class(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void session_impl::delete_peer_class(int cid)
|
void session_impl::delete_peer_class(peer_class_t const cid)
|
||||||
{
|
{
|
||||||
TORRENT_ASSERT(is_single_thread());
|
TORRENT_ASSERT(is_single_thread());
|
||||||
// if you hit this assert, you're deleting a non-existent peer class
|
// if you hit this assert, you're deleting a non-existent peer class
|
||||||
|
@ -1288,7 +1285,7 @@ namespace aux {
|
||||||
m_classes.decref(cid);
|
m_classes.decref(cid);
|
||||||
}
|
}
|
||||||
|
|
||||||
peer_class_info session_impl::get_peer_class(int cid)
|
peer_class_info session_impl::get_peer_class(peer_class_t const cid)
|
||||||
{
|
{
|
||||||
peer_class_info ret;
|
peer_class_info ret;
|
||||||
peer_class* pc = m_classes.at(cid);
|
peer_class* pc = m_classes.at(cid);
|
||||||
|
@ -1340,7 +1337,7 @@ namespace aux {
|
||||||
m_tracker_manager.queue_request(get_io_service(), req, c);
|
m_tracker_manager.queue_request(get_io_service(), req, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
void session_impl::set_peer_class(int cid, peer_class_info const& pci)
|
void session_impl::set_peer_class(peer_class_t const cid, peer_class_info const& pci)
|
||||||
{
|
{
|
||||||
peer_class* pc = m_classes.at(cid);
|
peer_class* pc = m_classes.at(cid);
|
||||||
// if you hit this assert, you're passing in an invalid cid
|
// if you hit this assert, you're passing in an invalid cid
|
||||||
|
@ -6238,7 +6235,7 @@ retry:
|
||||||
{
|
{
|
||||||
return download_rate_limit(m_global_class);
|
return download_rate_limit(m_global_class);
|
||||||
}
|
}
|
||||||
#endif
|
#endif // DEPRECATE
|
||||||
|
|
||||||
// TODO: 2 this should be factored into the udp socket, so we only have the
|
// TODO: 2 this should be factored into the udp socket, so we only have the
|
||||||
// code once
|
// code once
|
||||||
|
|
|
@ -204,7 +204,7 @@ namespace libtorrent
|
||||||
SET(no_recheck_incomplete_resume, false, 0),
|
SET(no_recheck_incomplete_resume, false, 0),
|
||||||
SET(anonymous_mode, false, &session_impl::update_anonymous_mode),
|
SET(anonymous_mode, false, &session_impl::update_anonymous_mode),
|
||||||
SET(report_web_seed_downloads, true, &session_impl::update_report_web_seed_downloads),
|
SET(report_web_seed_downloads, true, &session_impl::update_report_web_seed_downloads),
|
||||||
DEPRECATED_SET(rate_limit_utp, false, &session_impl::update_rate_limit_utp),
|
DEPRECATED_SET(rate_limit_utp, true, &session_impl::update_rate_limit_utp),
|
||||||
SET(announce_double_nat, false, 0),
|
SET(announce_double_nat, false, 0),
|
||||||
SET(seeding_outgoing_connections, true, 0),
|
SET(seeding_outgoing_connections, true, 0),
|
||||||
SET(no_connect_privileged_ports, false, &session_impl::update_privileged_ports),
|
SET(no_connect_privileged_ports, false, &session_impl::update_privileged_ports),
|
||||||
|
|
Loading…
Reference in New Issue