make settings_pack enums specify a narrower underlying type and remove deprecated, internal enums

This commit is contained in:
arvidn 2018-11-20 15:44:55 +01:00 committed by Arvid Norberg
parent bac57a6e69
commit 12cbcfd380
6 changed files with 18 additions and 73 deletions

View File

@ -52,7 +52,7 @@ void bind_session_settings()
.value("enabled", settings_pack::pe_enabled)
.value("disabled", settings_pack::pe_disabled)
#endif
;
;
enum_<settings_pack::enc_level>("enc_level")
.value("pe_rc4", settings_pack::pe_rc4)
@ -65,7 +65,7 @@ void bind_session_settings()
#endif
;
enum_<settings_pack::proxy_type_t>("proxy_type_t")
scope s = enum_<settings_pack::proxy_type_t>("proxy_type_t")
.value("none", settings_pack::none)
.value("socks4", settings_pack::socks4)
.value("socks5", settings_pack::socks5)
@ -76,15 +76,7 @@ void bind_session_settings()
;
#if TORRENT_ABI_VERSION == 1
enum_<proxy_settings::proxy_type>("proxy_type")
.value("none", proxy_settings::none)
.value("socks4", proxy_settings::socks4)
.value("socks5", proxy_settings::socks5)
.value("socks5_pw", proxy_settings::socks5_pw)
.value("http", proxy_settings::http)
.value("http_pw", proxy_settings::http_pw)
.value("i2p_proxy", proxy_settings::i2p_proxy)
;
scope().attr("proxy_type") = s;
class_<proxy_settings>("proxy_settings")
.def_readwrite("hostname", &proxy_settings::hostname)

View File

@ -34,6 +34,7 @@ POSSIBILITY OF SUCH DAMAGE.
#define TORRENT_PROXY_SETTINGS_HPP_INCLUDED
#include "libtorrent/config.hpp"
#include "libtorrent/settings_pack.hpp"
#include <string>
@ -67,57 +68,9 @@ namespace aux {
std::string username;
std::string password;
#if TORRENT_ABI_VERSION == 1
// the type of proxy to use. Assign one of these to the
// proxy_settings::type field.
enum proxy_type
{
// This is the default, no proxy server is used, all other fields are
// ignored.
none,
// The server is assumed to be a `SOCKS4 server`_ that requires a
// username.
//
// .. _`SOCKS4 server`: http://www.ufasoft.com/doc/socks4_protocol.htm
socks4,
// The server is assumed to be a SOCKS5 server (`RFC 1928`_) that does
// not require any authentication. The username and password are
// ignored.
//
// .. _`RFC 1928`: http://www.faqs.org/rfcs/rfc1928.html
socks5,
// The server is assumed to be a SOCKS5 server that supports plain
// text username and password authentication (`RFC 1929`_). The
// username and password specified may be sent to the proxy if it
// requires.
//
// .. _`RFC 1929`: http://www.faqs.org/rfcs/rfc1929.html
socks5_pw,
// The server is assumed to be an HTTP proxy. If the transport used
// for the connection is non-HTTP, the server is assumed to support
// the CONNECT_ method. i.e. for web seeds and HTTP trackers, a plain
// proxy will suffice. The proxy is assumed to not require
// authorization. The username and password will not be used.
//
// .. _CONNECT: http://tools.ietf.org/html/draft-luotonen-web-proxy-tunneling-01
http,
// The server is assumed to be an HTTP proxy that requires user
// authorization. The username and password will be sent to the proxy.
http_pw,
// route through an i2p SAM proxy
i2p_proxy
};
#endif
// tells libtorrent what kind of proxy server it is. See proxy_type
// tells libtorrent what kind of proxy server it is. See proxy_type_t
// enum for options
std::uint8_t type = 0;
settings_pack::proxy_type_t type = settings_pack::none;
// the port the proxy server is running on
std::uint16_t port = 0;

View File

@ -1668,30 +1668,30 @@ namespace libtorrent {
max_int_setting_internal
};
enum settings_counts_t
enum settings_counts_t : std::uint8_t
{
num_string_settings = max_string_setting_internal - string_type_base,
num_bool_settings = max_bool_setting_internal - bool_type_base,
num_int_settings = max_int_setting_internal - int_type_base
};
enum suggest_mode_t { no_piece_suggestions = 0, suggest_read_cache = 1 };
enum suggest_mode_t : std::uint8_t { no_piece_suggestions = 0, suggest_read_cache = 1 };
enum choking_algorithm_t
enum choking_algorithm_t : std::uint8_t
{
fixed_slots_choker = 0,
rate_based_choker = 2,
bittyrant_choker = 3
};
enum seed_choking_algorithm_t
enum seed_choking_algorithm_t : std::uint8_t
{
round_robin,
fastest_upload,
anti_leech
};
enum io_buffer_mode_t
enum io_buffer_mode_t : std::uint8_t
{
enable_os_cache = 0,
#if TORRENT_ABI_VERSION == 1
@ -1702,7 +1702,7 @@ namespace libtorrent {
disable_os_cache = 2
};
enum bandwidth_mixed_algo_t
enum bandwidth_mixed_algo_t : std::uint8_t
{
// disables the mixed mode bandwidth balancing
prefer_tcp = 0,
@ -1714,7 +1714,7 @@ namespace libtorrent {
// the encoding policy options for use with
// settings_pack::out_enc_policy and settings_pack::in_enc_policy.
enum enc_policy
enum enc_policy : std::uint8_t
{
// Only encrypted connections are allowed. Incoming connections that
// are not encrypted are closed and if the encrypted outgoing
@ -1733,7 +1733,7 @@ namespace libtorrent {
// the encryption levels, to be used with
// settings_pack::allowed_enc_level.
enum enc_level
enum enc_level : std::uint8_t
{
// use only plaintext encryption
pe_plaintext = 1,
@ -1743,7 +1743,7 @@ namespace libtorrent {
pe_both = 3
};
enum proxy_type_t
enum proxy_type_t : std::uint8_t
{
// This is the default, no proxy server is used, all other fields are
// ignored.

View File

@ -41,7 +41,7 @@ inline lt::aux::proxy_settings make_proxy_settings(
using namespace lt;
aux::proxy_settings ps;
ps.type = std::uint8_t(proxy_type);
ps.type = proxy_type;
ps.proxy_hostnames = false;
// this IP and ports are specific to test_http_connection.cpp
if (proxy_type != settings_pack::none)

View File

@ -44,7 +44,7 @@ void init(proxy_settings& p, Settings const& sett)
p.hostname = sett.get_str(settings_pack::proxy_hostname);
p.username = sett.get_str(settings_pack::proxy_username);
p.password = sett.get_str(settings_pack::proxy_password);
p.type = std::uint8_t(sett.get_int(settings_pack::proxy_type));
p.type = settings_pack::proxy_type_t(sett.get_int(settings_pack::proxy_type));
p.port = std::uint16_t(sett.get_int(settings_pack::proxy_port));
p.proxy_hostnames = sett.get_bool(settings_pack::proxy_hostnames);
p.proxy_peer_connections = sett.get_bool(

View File

@ -1051,7 +1051,7 @@ namespace {
// setting
settings_pack pack;
pack.set_bool(settings_pack::proxy_tracker_connections
, s.type != aux::proxy_settings::none);
, s.type != settings_pack::none);
apply_settings(pack);
}