mirror of
https://github.com/transmission/transmission.git
synced 2026-02-15 07:26:49 +00:00
refactor: rename peer_socket_tos to peer_socket_diffserv (#8004)
This commit is contained in:
@@ -231,7 +231,7 @@ int parseCommandLine(tr_variant* d, int argc, char const** argv)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 't':
|
case 't':
|
||||||
tr_variantDictAddStr(d, TR_KEY_peer_socket_tos, my_optarg);
|
tr_variantDictAddStr(d, TR_KEY_peer_socket_diffserv, my_optarg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'u':
|
case 'u':
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ Here is a sample of the three basic types: respectively Boolean, Number and Stri
|
|||||||
* **peer_congestion_algorithm:** String. This is documented on https://www.pps.jussieu.fr/~jch/software/bittorrent/tcp-congestion-control.html.
|
* **peer_congestion_algorithm:** String. This is documented on https://www.pps.jussieu.fr/~jch/software/bittorrent/tcp-congestion-control.html.
|
||||||
* **peer_limit_global:** Number (default = 200)
|
* **peer_limit_global:** Number (default = 200)
|
||||||
* **peer_limit_per_torrent:** Number (default = 50)
|
* **peer_limit_per_torrent:** Number (default = 50)
|
||||||
* **peer_socket_tos:** String (default = "le") Set the [DiffServ](https://en.wikipedia.org/wiki/Differentiated_services) parameter for outgoing packets. Allowed values are lowercase DSCP names. See the `tr_tos_t` class from `libtransmission/net.h` for the exact list of possible values.
|
* **peer_socket_diffserv:** String (default = "le") Set the [DiffServ](https://en.wikipedia.org/wiki/Differentiated_services) parameter for outgoing packets. Allowed values are lowercase DSCP names. See the `tr_diffserv_t` class from `libtransmission/net.h` for the exact list of possible values.
|
||||||
* **reqq:** Number (default = 2000) The number of outstanding block requests a peer is allowed to queue in the client. The higher this number, the higher the max possible upload speed towards each peer.
|
* **reqq:** Number (default = 2000) The number of outstanding block requests a peer is allowed to queue in the client. The higher this number, the higher the max possible upload speed towards each peer.
|
||||||
* **sequential_download** Boolean (default = false) Enable sequential download by default when adding torrents.
|
* **sequential_download** Boolean (default = false) Enable sequential download by default when adding torrents.
|
||||||
|
|
||||||
|
|||||||
@@ -305,7 +305,7 @@ auto constexpr SessionKeys = std::array<ApiKey, 157U>{ {
|
|||||||
{ TR_KEY_peer_port_random_high, TR_KEY_peer_port_random_high_kebab_APICOMPAT },
|
{ TR_KEY_peer_port_random_high, TR_KEY_peer_port_random_high_kebab_APICOMPAT },
|
||||||
{ TR_KEY_peer_port_random_low, TR_KEY_peer_port_random_low_kebab_APICOMPAT },
|
{ TR_KEY_peer_port_random_low, TR_KEY_peer_port_random_low_kebab_APICOMPAT },
|
||||||
{ TR_KEY_peer_port_random_on_start, TR_KEY_peer_port_random_on_start_kebab_APICOMPAT },
|
{ TR_KEY_peer_port_random_on_start, TR_KEY_peer_port_random_on_start_kebab_APICOMPAT },
|
||||||
{ TR_KEY_peer_socket_tos, TR_KEY_peer_socket_tos_kebab_APICOMPAT },
|
{ TR_KEY_peer_socket_diffserv, TR_KEY_peer_socket_tos_kebab_APICOMPAT },
|
||||||
{ TR_KEY_peers2_6, TR_KEY_peers2_6_kebab_APICOMPAT },
|
{ TR_KEY_peers2_6, TR_KEY_peers2_6_kebab_APICOMPAT },
|
||||||
{ TR_KEY_pex_enabled, TR_KEY_pex_enabled_kebab_APICOMPAT },
|
{ TR_KEY_pex_enabled, TR_KEY_pex_enabled_kebab_APICOMPAT },
|
||||||
{ TR_KEY_port_forwarding_enabled, TR_KEY_port_forwarding_enabled_kebab_APICOMPAT },
|
{ TR_KEY_port_forwarding_enabled, TR_KEY_port_forwarding_enabled_kebab_APICOMPAT },
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ int tr_make_listen_socket_ipv6only(tr_socket_t const sock)
|
|||||||
|
|
||||||
// - TCP Sockets
|
// - TCP Sockets
|
||||||
|
|
||||||
[[nodiscard]] std::optional<tr_tos_t> tr_tos_t::from_string(std::string_view name)
|
[[nodiscard]] std::optional<tr_diffserv_t> tr_diffserv_t::from_string(std::string_view name)
|
||||||
{
|
{
|
||||||
auto const needle = tr_strlower(tr_strv_strip(name));
|
auto const needle = tr_strlower(tr_strv_strip(name));
|
||||||
|
|
||||||
@@ -119,19 +119,19 @@ int tr_make_listen_socket_ipv6only(tr_socket_t const sock)
|
|||||||
{
|
{
|
||||||
if (needle == key)
|
if (needle == key)
|
||||||
{
|
{
|
||||||
return tr_tos_t(value);
|
return tr_diffserv_t(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (auto value = tr_num_parse<int>(needle); value)
|
if (auto value = tr_num_parse<int>(needle); value)
|
||||||
{
|
{
|
||||||
return tr_tos_t(*value);
|
return tr_diffserv_t(*value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string tr_tos_t::toString() const
|
std::string tr_diffserv_t::toString() const
|
||||||
{
|
{
|
||||||
for (auto const& [value, key] : Names)
|
for (auto const& [value, key] : Names)
|
||||||
{
|
{
|
||||||
@@ -144,7 +144,7 @@ std::string tr_tos_t::toString() const
|
|||||||
return std::to_string(value_);
|
return std::to_string(value_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tr_netSetTOS([[maybe_unused]] tr_socket_t s, [[maybe_unused]] int tos, tr_address_type type)
|
void tr_netSetDiffServ([[maybe_unused]] tr_socket_t s, [[maybe_unused]] int tos, tr_address_type type)
|
||||||
{
|
{
|
||||||
if (s == TR_BAD_SOCKET)
|
if (s == TR_BAD_SOCKET)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -637,14 +637,14 @@ void tr_net_close_socket(tr_socket_t fd);
|
|||||||
// --- TOS / DSCP
|
// --- TOS / DSCP
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A `toString()` / `from_string()` convenience wrapper around the TOS int value
|
* A `toString()` / `from_string()` convenience wrapper around the DiffServ int value
|
||||||
*/
|
*/
|
||||||
class tr_tos_t
|
class tr_diffserv_t
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
constexpr tr_tos_t() = default;
|
constexpr tr_diffserv_t() = default;
|
||||||
|
|
||||||
constexpr explicit tr_tos_t(int value)
|
constexpr explicit tr_diffserv_t(int value)
|
||||||
: value_{ value }
|
: value_{ value }
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -655,7 +655,7 @@ public:
|
|||||||
return value_;
|
return value_;
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] static std::optional<tr_tos_t> from_string(std::string_view name);
|
[[nodiscard]] static std::optional<tr_diffserv_t> from_string(std::string_view name);
|
||||||
|
|
||||||
[[nodiscard]] std::string toString() const;
|
[[nodiscard]] std::string toString() const;
|
||||||
|
|
||||||
@@ -701,7 +701,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// set the IPTOS_ value for the specified socket
|
// set the IPTOS_ value for the specified socket
|
||||||
void tr_netSetTOS(tr_socket_t sock, int tos, tr_address_type type);
|
void tr_netSetDiffServ(tr_socket_t sock, int tos, tr_address_type type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief get a human-representable string representing the network error.
|
* @brief get a human-representable string representing the network error.
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ tr_peer_socket::tr_peer_socket(tr_session const* session, tr_socket_address cons
|
|||||||
TR_ASSERT(sock != TR_BAD_SOCKET);
|
TR_ASSERT(sock != TR_BAD_SOCKET);
|
||||||
|
|
||||||
++n_open_sockets;
|
++n_open_sockets;
|
||||||
session->setSocketTOS(sock, address().type);
|
session->setSocketDiffServ(sock, address().type);
|
||||||
|
|
||||||
if (auto const& algo = session->peerCongestionAlgorithm(); !std::empty(algo))
|
if (auto const& algo = session->peerCongestionAlgorithm(); !std::empty(algo))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -376,7 +376,7 @@ auto constexpr MyStatic = std::array<std::string_view, TR_N_KEYS>{
|
|||||||
"peer_port_random_high"sv, // tr_session::Settings
|
"peer_port_random_high"sv, // tr_session::Settings
|
||||||
"peer_port_random_low"sv, // tr_session::Settings
|
"peer_port_random_low"sv, // tr_session::Settings
|
||||||
"peer_port_random_on_start"sv, // rpc, tr_session::Settings
|
"peer_port_random_on_start"sv, // rpc, tr_session::Settings
|
||||||
"peer_socket_tos"sv, // tr_session::Settings
|
"peer_socket_diffserv"sv, // tr_session::Settings
|
||||||
"peers"sv, // rpc
|
"peers"sv, // rpc
|
||||||
"peers2"sv, // .resume
|
"peers2"sv, // .resume
|
||||||
"peers2-6"sv, // .resume
|
"peers2-6"sv, // .resume
|
||||||
|
|||||||
@@ -389,7 +389,7 @@ enum // NOLINT(performance-enum-size)
|
|||||||
TR_KEY_peer_port_random_high,
|
TR_KEY_peer_port_random_high,
|
||||||
TR_KEY_peer_port_random_low,
|
TR_KEY_peer_port_random_low,
|
||||||
TR_KEY_peer_port_random_on_start,
|
TR_KEY_peer_port_random_on_start,
|
||||||
TR_KEY_peer_socket_tos,
|
TR_KEY_peer_socket_diffserv,
|
||||||
TR_KEY_peers,
|
TR_KEY_peers,
|
||||||
TR_KEY_peers2,
|
TR_KEY_peers2,
|
||||||
TR_KEY_peers2_6_kebab_APICOMPAT,
|
TR_KEY_peers2_6_kebab_APICOMPAT,
|
||||||
|
|||||||
@@ -451,11 +451,11 @@ tr_variant from_string(std::string const& val)
|
|||||||
|
|
||||||
// ---
|
// ---
|
||||||
|
|
||||||
bool to_tos_t(tr_variant const& src, tr_tos_t* tgt)
|
bool to_diffserv_t(tr_variant const& src, tr_diffserv_t* tgt)
|
||||||
{
|
{
|
||||||
if (auto const val = src.value_if<std::string_view>())
|
if (auto const val = src.value_if<std::string_view>())
|
||||||
{
|
{
|
||||||
if (auto const tos = tr_tos_t::from_string(*val); tos)
|
if (auto const tos = tr_diffserv_t::from_string(*val); tos)
|
||||||
{
|
{
|
||||||
*tgt = *tos;
|
*tgt = *tos;
|
||||||
return true;
|
return true;
|
||||||
@@ -466,14 +466,14 @@ bool to_tos_t(tr_variant const& src, tr_tos_t* tgt)
|
|||||||
|
|
||||||
if (auto const val = src.value_if<int64_t>())
|
if (auto const val = src.value_if<int64_t>())
|
||||||
{
|
{
|
||||||
*tgt = tr_tos_t{ static_cast<int>(*val) };
|
*tgt = tr_diffserv_t{ static_cast<int>(*val) };
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr_variant from_tos_t(tr_tos_t const& val)
|
tr_variant from_diffserv_t(tr_diffserv_t const& val)
|
||||||
{
|
{
|
||||||
return val.toString();
|
return val.toString();
|
||||||
}
|
}
|
||||||
@@ -540,6 +540,7 @@ void Converters::ensure_default_converters()
|
|||||||
[]
|
[]
|
||||||
{
|
{
|
||||||
Converters::add(to_bool, from_bool);
|
Converters::add(to_bool, from_bool);
|
||||||
|
Converters::add(to_diffserv_t, from_diffserv_t);
|
||||||
Converters::add(to_double, from_double);
|
Converters::add(to_double, from_double);
|
||||||
Converters::add(to_encryption_mode, from_encryption_mode);
|
Converters::add(to_encryption_mode, from_encryption_mode);
|
||||||
Converters::add(to_int64, from_int64);
|
Converters::add(to_int64, from_int64);
|
||||||
@@ -551,7 +552,6 @@ void Converters::ensure_default_converters()
|
|||||||
Converters::add(to_preferred_transport, from_preferred_transport);
|
Converters::add(to_preferred_transport, from_preferred_transport);
|
||||||
Converters::add(to_size_t, from_size_t);
|
Converters::add(to_size_t, from_size_t);
|
||||||
Converters::add(to_string, from_string);
|
Converters::add(to_string, from_string);
|
||||||
Converters::add(to_tos_t, from_tos_t);
|
|
||||||
Converters::add(to_uint64, from_uint64);
|
Converters::add(to_uint64, from_uint64);
|
||||||
Converters::add(to_verify_added_mode, from_verify_added_mode);
|
Converters::add(to_verify_added_mode, from_verify_added_mode);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -481,7 +481,7 @@ public:
|
|||||||
tr_port peer_port_random_high = tr_port::from_host(65535);
|
tr_port peer_port_random_high = tr_port::from_host(65535);
|
||||||
tr_port peer_port_random_low = tr_port::from_host(49152);
|
tr_port peer_port_random_low = tr_port::from_host(49152);
|
||||||
tr_port peer_port = tr_port::from_host(TrDefaultPeerPort);
|
tr_port peer_port = tr_port::from_host(TrDefaultPeerPort);
|
||||||
tr_tos_t peer_socket_tos{ 0x04 };
|
tr_diffserv_t peer_socket_diffserv{ 0x04 };
|
||||||
tr_verify_added_mode torrent_added_verify_mode = TR_VERIFY_ADDED_FAST;
|
tr_verify_added_mode torrent_added_verify_mode = TR_VERIFY_ADDED_FAST;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -515,7 +515,7 @@ public:
|
|||||||
Field<&Settings::peer_port_random_high>{ TR_KEY_peer_port_random_high },
|
Field<&Settings::peer_port_random_high>{ TR_KEY_peer_port_random_high },
|
||||||
Field<&Settings::peer_port_random_low>{ TR_KEY_peer_port_random_low },
|
Field<&Settings::peer_port_random_low>{ TR_KEY_peer_port_random_low },
|
||||||
Field<&Settings::peer_port_random_on_start>{ TR_KEY_peer_port_random_on_start },
|
Field<&Settings::peer_port_random_on_start>{ TR_KEY_peer_port_random_on_start },
|
||||||
Field<&Settings::peer_socket_tos>{ TR_KEY_peer_socket_tos },
|
Field<&Settings::peer_socket_diffserv>{ TR_KEY_peer_socket_diffserv },
|
||||||
Field<&Settings::pex_enabled>{ TR_KEY_pex_enabled },
|
Field<&Settings::pex_enabled>{ TR_KEY_pex_enabled },
|
||||||
Field<&Settings::port_forwarding_enabled>{ TR_KEY_port_forwarding_enabled },
|
Field<&Settings::port_forwarding_enabled>{ TR_KEY_port_forwarding_enabled },
|
||||||
Field<&Settings::preallocation_mode>{ TR_KEY_preallocation },
|
Field<&Settings::preallocation_mode>{ TR_KEY_preallocation },
|
||||||
@@ -751,9 +751,9 @@ public:
|
|||||||
settings_.peer_congestion_algorithm = algorithm;
|
settings_.peer_congestion_algorithm = algorithm;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setSocketTOS(tr_socket_t sock, tr_address_type type) const
|
void setSocketDiffServ(tr_socket_t sock, tr_address_type type) const
|
||||||
{
|
{
|
||||||
tr_netSetTOS(sock, settings_.peer_socket_tos, type);
|
tr_netSetDiffServ(sock, settings_.peer_socket_diffserv, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] constexpr auto peerLimit() const noexcept
|
[[nodiscard]] constexpr auto peerLimit() const noexcept
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ tr_session::tr_udp_core::tr_udp_core(tr_session& session, tr_port udp_port)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
tr_logAddInfo(fmt::format("Bound UDP IPv4 address {:s}", tr_socket_address::display_name(addr, udp_port_)));
|
tr_logAddInfo(fmt::format("Bound UDP IPv4 address {:s}", tr_socket_address::display_name(addr, udp_port_)));
|
||||||
session_.setSocketTOS(sock, TR_AF_INET);
|
session_.setSocketDiffServ(sock, TR_AF_INET);
|
||||||
set_socket_buffers(sock, session_.allowsUTP());
|
set_socket_buffers(sock, session_.allowsUTP());
|
||||||
udp4_socket_ = sock;
|
udp4_socket_ = sock;
|
||||||
udp4_event_.reset(event_new(session_.event_base(), udp4_socket_, EV_READ | EV_PERSIST, event_callback, &session_));
|
udp4_event_.reset(event_new(session_.event_base(), udp4_socket_, EV_READ | EV_PERSIST, event_callback, &session_));
|
||||||
@@ -252,7 +252,7 @@ tr_session::tr_udp_core::tr_udp_core(tr_session& session, tr_port udp_port)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
tr_logAddInfo(fmt::format("Bound UDP IPv6 address {:s}", tr_socket_address::display_name(addr, udp_port_)));
|
tr_logAddInfo(fmt::format("Bound UDP IPv6 address {:s}", tr_socket_address::display_name(addr, udp_port_)));
|
||||||
session_.setSocketTOS(sock, TR_AF_INET6);
|
session_.setSocketDiffServ(sock, TR_AF_INET6);
|
||||||
set_socket_buffers(sock, session_.allowsUTP());
|
set_socket_buffers(sock, session_.allowsUTP());
|
||||||
udp6_socket_ = sock;
|
udp6_socket_ = sock;
|
||||||
udp6_event_.reset(event_new(session_.event_base(), udp6_socket_, EV_READ | EV_PERSIST, event_callback, &session_));
|
udp6_event_.reset(event_new(session_.event_base(), udp6_socket_, EV_READ | EV_PERSIST, event_callback, &session_));
|
||||||
|
|||||||
@@ -524,7 +524,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
|
|||||||
//hidden pref
|
//hidden pref
|
||||||
if ([_fDefaults objectForKey:@"PeerSocketTOS"])
|
if ([_fDefaults objectForKey:@"PeerSocketTOS"])
|
||||||
{
|
{
|
||||||
tr_variantDictAddStr(&settings, TR_KEY_peer_socket_tos, [_fDefaults stringForKey:@"PeerSocketTOS"].UTF8String);
|
tr_variantDictAddStr(&settings, TR_KEY_peer_socket_diffserv, [_fDefaults stringForKey:@"PeerSocketTOS"].UTF8String);
|
||||||
}
|
}
|
||||||
|
|
||||||
tr_variantDictAddBool(&settings, TR_KEY_pex_enabled, [_fDefaults boolForKey:@"PEXGlobal"]);
|
tr_variantDictAddBool(&settings, TR_KEY_pex_enabled, [_fDefaults boolForKey:@"PEXGlobal"]);
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ std::array<Prefs::PrefItem, Prefs::PREFS_COUNT> const Prefs::Items{
|
|||||||
{ SCRIPT_TORRENT_DONE_FILENAME, TR_KEY_script_torrent_done_filename, QMetaType::QString },
|
{ SCRIPT_TORRENT_DONE_FILENAME, TR_KEY_script_torrent_done_filename, QMetaType::QString },
|
||||||
{ SCRIPT_TORRENT_DONE_SEEDING_ENABLED, TR_KEY_script_torrent_done_seeding_enabled, QMetaType::Bool },
|
{ SCRIPT_TORRENT_DONE_SEEDING_ENABLED, TR_KEY_script_torrent_done_seeding_enabled, QMetaType::Bool },
|
||||||
{ SCRIPT_TORRENT_DONE_SEEDING_FILENAME, TR_KEY_script_torrent_done_seeding_filename, QMetaType::QString },
|
{ SCRIPT_TORRENT_DONE_SEEDING_FILENAME, TR_KEY_script_torrent_done_seeding_filename, QMetaType::QString },
|
||||||
{ SOCKET_TOS, TR_KEY_peer_socket_tos, QMetaType::QString },
|
{ SOCKET_DIFFSERV, TR_KEY_peer_socket_diffserv, QMetaType::QString },
|
||||||
{ START, TR_KEY_start_added_torrents, QMetaType::Bool },
|
{ START, TR_KEY_start_added_torrents, QMetaType::Bool },
|
||||||
{ TRASH_ORIGINAL, TR_KEY_trash_original_torrent_files, QMetaType::Bool },
|
{ TRASH_ORIGINAL, TR_KEY_trash_original_torrent_files, QMetaType::Bool },
|
||||||
{ PEX_ENABLED, TR_KEY_pex_enabled, QMetaType::Bool },
|
{ PEX_ENABLED, TR_KEY_pex_enabled, QMetaType::Bool },
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ public:
|
|||||||
SCRIPT_TORRENT_DONE_FILENAME,
|
SCRIPT_TORRENT_DONE_FILENAME,
|
||||||
SCRIPT_TORRENT_DONE_SEEDING_ENABLED,
|
SCRIPT_TORRENT_DONE_SEEDING_ENABLED,
|
||||||
SCRIPT_TORRENT_DONE_SEEDING_FILENAME,
|
SCRIPT_TORRENT_DONE_SEEDING_FILENAME,
|
||||||
SOCKET_TOS,
|
SOCKET_DIFFSERV,
|
||||||
START,
|
START,
|
||||||
TRASH_ORIGINAL,
|
TRASH_ORIGINAL,
|
||||||
PEX_ENABLED,
|
PEX_ENABLED,
|
||||||
|
|||||||
@@ -481,7 +481,7 @@ constexpr std::string_view CurrentSettingsJson = R"json({
|
|||||||
"peer_port_random_high": 65535,
|
"peer_port_random_high": 65535,
|
||||||
"peer_port_random_low": 49152,
|
"peer_port_random_low": 49152,
|
||||||
"peer_port_random_on_start": false,
|
"peer_port_random_on_start": false,
|
||||||
"peer_socket_tos": "le",
|
"peer_socket_diffserv": "le",
|
||||||
"pex_enabled": true,
|
"pex_enabled": true,
|
||||||
"port_forwarding_enabled": true,
|
"port_forwarding_enabled": true,
|
||||||
"preallocation": 1,
|
"preallocation": 1,
|
||||||
|
|||||||
@@ -360,36 +360,36 @@ TEST_F(SettingsTest, canSaveNullableString)
|
|||||||
EXPECT_TRUE(null_p);
|
EXPECT_TRUE(null_p);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(SettingsTest, canLoadTos)
|
TEST_F(SettingsTest, canLoadDiffServ)
|
||||||
{
|
{
|
||||||
static auto constexpr Key = TR_KEY_peer_socket_tos;
|
static auto constexpr Key = TR_KEY_peer_socket_diffserv;
|
||||||
static auto constexpr ChangedValue = tr_tos_t{ 0x20 };
|
static auto constexpr ChangedValue = tr_diffserv_t{ 0x20 };
|
||||||
|
|
||||||
auto settings = std::make_unique<tr_session::Settings>();
|
auto settings = std::make_unique<tr_session::Settings>();
|
||||||
auto const default_value = settings->peer_socket_tos;
|
auto const default_value = settings->peer_socket_diffserv;
|
||||||
ASSERT_NE(ChangedValue, default_value);
|
ASSERT_NE(ChangedValue, default_value);
|
||||||
|
|
||||||
auto map = tr_variant::Map{ 1U };
|
auto map = tr_variant::Map{ 1U };
|
||||||
map.try_emplace(Key, 0x20);
|
map.try_emplace(Key, 0x20);
|
||||||
settings->load(tr_variant{ std::move(map) });
|
settings->load(tr_variant{ std::move(map) });
|
||||||
EXPECT_EQ(ChangedValue, settings->peer_socket_tos);
|
EXPECT_EQ(ChangedValue, settings->peer_socket_diffserv);
|
||||||
|
|
||||||
settings = std::make_unique<tr_session::Settings>();
|
settings = std::make_unique<tr_session::Settings>();
|
||||||
map = tr_variant::Map{ 1U };
|
map = tr_variant::Map{ 1U };
|
||||||
map.try_emplace(Key, "cs1"sv);
|
map.try_emplace(Key, "cs1"sv);
|
||||||
settings->load(tr_variant{ std::move(map) });
|
settings->load(tr_variant{ std::move(map) });
|
||||||
EXPECT_EQ(ChangedValue, settings->peer_socket_tos);
|
EXPECT_EQ(ChangedValue, settings->peer_socket_diffserv);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(SettingsTest, canSaveTos)
|
TEST_F(SettingsTest, canSaveDiffServ)
|
||||||
{
|
{
|
||||||
static auto constexpr Key = TR_KEY_peer_socket_tos;
|
static auto constexpr Key = TR_KEY_peer_socket_diffserv;
|
||||||
static auto constexpr ChangedValue = tr_tos_t{ 0x20 };
|
static auto constexpr ChangedValue = tr_diffserv_t{ 0x20 };
|
||||||
|
|
||||||
auto settings = tr_session::Settings{};
|
auto settings = tr_session::Settings{};
|
||||||
ASSERT_NE(ChangedValue, settings.peer_socket_tos);
|
ASSERT_NE(ChangedValue, settings.peer_socket_diffserv);
|
||||||
|
|
||||||
settings.peer_socket_tos = tr_tos_t(0x20);
|
settings.peer_socket_diffserv = tr_diffserv_t(0x20);
|
||||||
auto const map = settings.save();
|
auto const map = settings.save();
|
||||||
auto const val = map.value_if<std::string_view>(Key);
|
auto const val = map.value_if<std::string_view>(Key);
|
||||||
ASSERT_TRUE(val);
|
ASSERT_TRUE(val);
|
||||||
|
|||||||
Reference in New Issue
Block a user