refactor: remove tr_variantDictFindStr() from rpc-server.cc (#2159)

* refactor: use FindStrview for rpc username

* refactor: use tr_variantDictFindStrView for rpc bind address
This commit is contained in:
Charles Kerr 2021-11-14 16:06:32 -06:00 committed by GitHub
parent 3bab6f02dc
commit 6dda4f2b5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 13 deletions

View File

@ -1029,11 +1029,10 @@ static void missing_settings_key(tr_quark const q)
tr_rpc_server::tr_rpc_server(tr_session* session_in, tr_variant* settings)
: session{ session_in }
{
auto sv = std::string_view{};
auto address = tr_address{};
auto boolVal = bool{};
auto i = int64_t{};
char const* str = nullptr;
auto sv = std::string_view{};
auto key = TR_KEY_rpc_enabled;
@ -1129,13 +1128,13 @@ tr_rpc_server::tr_rpc_server(tr_session* session_in, tr_variant* settings)
key = TR_KEY_rpc_username;
if (!tr_variantDictFindStr(settings, key, &str, nullptr))
if (!tr_variantDictFindStrView(settings, key, &sv))
{
missing_settings_key(key);
}
else
{
tr_rpcSetUsername(this, str);
tr_rpcSetUsername(this, sv);
}
key = TR_KEY_rpc_password;
@ -1173,20 +1172,26 @@ tr_rpc_server::tr_rpc_server(tr_session* session_in, tr_variant* settings)
key = TR_KEY_rpc_bind_address;
if (!tr_variantDictFindStr(settings, key, &str, nullptr))
if (!tr_variantDictFindStrView(settings, key, &sv))
{
missing_settings_key(key);
address = tr_inaddr_any;
}
else if (!tr_address_from_string(&address, str))
else
{
tr_logAddNamedError(MY_NAME, _("%s is not a valid address"), str);
address = tr_inaddr_any;
}
else if (address.type != TR_AF_INET && address.type != TR_AF_INET6)
{
tr_logAddNamedError(MY_NAME, _("%s is not an IPv4 or IPv6 address. RPC listeners must be IPv4 or IPv6"), str);
address = tr_inaddr_any;
if (!tr_address_from_string(&address, std::string{ sv }.c_str()))
{
tr_logAddNamedError(MY_NAME, _("%" TR_PRIsv " is not a valid address"), TR_PRIsv_ARG(sv));
address = tr_inaddr_any;
}
else if (address.type != TR_AF_INET && address.type != TR_AF_INET6)
{
tr_logAddNamedError(
MY_NAME,
_("%" TR_PRIsv " is not an IPv4 or IPv6 address. RPC listeners must be IPv4 or IPv6"),
TR_PRIsv_ARG(sv));
address = tr_inaddr_any;
}
}
this->bindAddress = address;