refactor: rename peer_socket_tos to peer_socket_diffserv (#8004)

This commit is contained in:
Yat Ho
2025-12-26 01:05:50 +08:00
committed by GitHub
parent 5602bcc74b
commit 11ead87f8d
16 changed files with 43 additions and 43 deletions

View File

@@ -231,7 +231,7 @@ int parseCommandLine(tr_variant* d, int argc, char const** argv)
break;
case 't':
tr_variantDictAddStr(d, TR_KEY_peer_socket_tos, my_optarg);
tr_variantDictAddStr(d, TR_KEY_peer_socket_diffserv, my_optarg);
break;
case 'u':

View File

@@ -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_limit_global:** Number (default = 200)
* **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.
* **sequential_download** Boolean (default = false) Enable sequential download by default when adding torrents.

View File

@@ -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_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_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_pex_enabled, TR_KEY_pex_enabled_kebab_APICOMPAT },
{ TR_KEY_port_forwarding_enabled, TR_KEY_port_forwarding_enabled_kebab_APICOMPAT },

View File

@@ -111,7 +111,7 @@ int tr_make_listen_socket_ipv6only(tr_socket_t const sock)
// - 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));
@@ -119,19 +119,19 @@ int tr_make_listen_socket_ipv6only(tr_socket_t const sock)
{
if (needle == key)
{
return tr_tos_t(value);
return tr_diffserv_t(value);
}
}
if (auto value = tr_num_parse<int>(needle); value)
{
return tr_tos_t(*value);
return tr_diffserv_t(*value);
}
return {};
}
std::string tr_tos_t::toString() const
std::string tr_diffserv_t::toString() const
{
for (auto const& [value, key] : Names)
{
@@ -144,7 +144,7 @@ std::string tr_tos_t::toString() const
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)
{

View File

@@ -637,14 +637,14 @@ void tr_net_close_socket(tr_socket_t fd);
// --- 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:
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 }
{
}
@@ -655,7 +655,7 @@ public:
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;
@@ -701,7 +701,7 @@ private:
};
// 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.

View File

@@ -31,7 +31,7 @@ tr_peer_socket::tr_peer_socket(tr_session const* session, tr_socket_address cons
TR_ASSERT(sock != TR_BAD_SOCKET);
++n_open_sockets;
session->setSocketTOS(sock, address().type);
session->setSocketDiffServ(sock, address().type);
if (auto const& algo = session->peerCongestionAlgorithm(); !std::empty(algo))
{

View File

@@ -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_low"sv, // 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
"peers2"sv, // .resume
"peers2-6"sv, // .resume

View File

@@ -389,7 +389,7 @@ enum // NOLINT(performance-enum-size)
TR_KEY_peer_port_random_high,
TR_KEY_peer_port_random_low,
TR_KEY_peer_port_random_on_start,
TR_KEY_peer_socket_tos,
TR_KEY_peer_socket_diffserv,
TR_KEY_peers,
TR_KEY_peers2,
TR_KEY_peers2_6_kebab_APICOMPAT,

View File

@@ -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 tos = tr_tos_t::from_string(*val); tos)
if (auto const tos = tr_diffserv_t::from_string(*val); tos)
{
*tgt = *tos;
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>())
{
*tgt = tr_tos_t{ static_cast<int>(*val) };
*tgt = tr_diffserv_t{ static_cast<int>(*val) };
return true;
}
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();
}
@@ -540,6 +540,7 @@ void Converters::ensure_default_converters()
[]
{
Converters::add(to_bool, from_bool);
Converters::add(to_diffserv_t, from_diffserv_t);
Converters::add(to_double, from_double);
Converters::add(to_encryption_mode, from_encryption_mode);
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_size_t, from_size_t);
Converters::add(to_string, from_string);
Converters::add(to_tos_t, from_tos_t);
Converters::add(to_uint64, from_uint64);
Converters::add(to_verify_added_mode, from_verify_added_mode);
});

View File

@@ -481,7 +481,7 @@ public:
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 = 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;
private:
@@ -515,7 +515,7 @@ public:
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_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::port_forwarding_enabled>{ TR_KEY_port_forwarding_enabled },
Field<&Settings::preallocation_mode>{ TR_KEY_preallocation },
@@ -751,9 +751,9 @@ public:
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

View File

@@ -205,7 +205,7 @@ tr_session::tr_udp_core::tr_udp_core(tr_session& session, tr_port udp_port)
else
{
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());
udp4_socket_ = sock;
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
{
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());
udp6_socket_ = sock;
udp6_event_.reset(event_new(session_.event_base(), udp6_socket_, EV_READ | EV_PERSIST, event_callback, &session_));

View File

@@ -524,7 +524,7 @@ void onTorrentCompletenessChanged(tr_torrent* tor, tr_completeness status, bool
//hidden pref
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"]);

View File

@@ -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_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 },
{ 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 },
{ TRASH_ORIGINAL, TR_KEY_trash_original_torrent_files, QMetaType::Bool },
{ PEX_ENABLED, TR_KEY_pex_enabled, QMetaType::Bool },

View File

@@ -104,7 +104,7 @@ public:
SCRIPT_TORRENT_DONE_FILENAME,
SCRIPT_TORRENT_DONE_SEEDING_ENABLED,
SCRIPT_TORRENT_DONE_SEEDING_FILENAME,
SOCKET_TOS,
SOCKET_DIFFSERV,
START,
TRASH_ORIGINAL,
PEX_ENABLED,

View File

@@ -481,7 +481,7 @@ constexpr std::string_view CurrentSettingsJson = R"json({
"peer_port_random_high": 65535,
"peer_port_random_low": 49152,
"peer_port_random_on_start": false,
"peer_socket_tos": "le",
"peer_socket_diffserv": "le",
"pex_enabled": true,
"port_forwarding_enabled": true,
"preallocation": 1,

View File

@@ -360,36 +360,36 @@ TEST_F(SettingsTest, canSaveNullableString)
EXPECT_TRUE(null_p);
}
TEST_F(SettingsTest, canLoadTos)
TEST_F(SettingsTest, canLoadDiffServ)
{
static auto constexpr Key = TR_KEY_peer_socket_tos;
static auto constexpr ChangedValue = tr_tos_t{ 0x20 };
static auto constexpr Key = TR_KEY_peer_socket_diffserv;
static auto constexpr ChangedValue = tr_diffserv_t{ 0x20 };
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);
auto map = tr_variant::Map{ 1U };
map.try_emplace(Key, 0x20);
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>();
map = tr_variant::Map{ 1U };
map.try_emplace(Key, "cs1"sv);
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 ChangedValue = tr_tos_t{ 0x20 };
static auto constexpr Key = TR_KEY_peer_socket_diffserv;
static auto constexpr ChangedValue = tr_diffserv_t{ 0x20 };
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 val = map.value_if<std::string_view>(Key);
ASSERT_TRUE(val);