mirror of
https://github.com/transmission/transmission.git
synced 2026-02-14 23:19:34 +00:00
fix: use URL base path (#8077)
Xref: feat: Remote session RPC url path change option qt client (#7561)
This commit is contained in:
@@ -474,7 +474,7 @@ auto constexpr MyStatic = std::array<std::string_view, TR_N_KEYS>{
|
||||
"remote_session_password"sv, // qt app
|
||||
"remote_session_port"sv, // qt app
|
||||
"remote_session_requires_authentication"sv, // qt app
|
||||
"remote_session_rpc_url_path"sv, // qt app
|
||||
"remote_session_url_base_path"sv, // qt app
|
||||
"remote_session_username"sv, // qt app
|
||||
"removed"sv, // rpc
|
||||
"rename-partial-files"sv, // rpc, tr_session::Settings
|
||||
|
||||
@@ -487,7 +487,7 @@ enum // NOLINT(performance-enum-size)
|
||||
TR_KEY_remote_session_password,
|
||||
TR_KEY_remote_session_port,
|
||||
TR_KEY_remote_session_requires_authentication,
|
||||
TR_KEY_remote_session_rpc_url_path,
|
||||
TR_KEY_remote_session_url_base_path,
|
||||
TR_KEY_remote_session_username,
|
||||
TR_KEY_removed,
|
||||
TR_KEY_rename_partial_files_kebab_APICOMPAT,
|
||||
|
||||
@@ -145,6 +145,10 @@ inline auto constexpr TrDefaultPeerLimitGlobal = 200U;
|
||||
#define TR_DEFAULT_PEER_LIMIT_TORRENT_STR "50"
|
||||
inline auto constexpr TrDefaultPeerLimitTorrent = 50U;
|
||||
|
||||
inline auto constexpr TrHttpServerDefaultBasePath = std::string_view{ TR_DEFAULT_RPC_URL_STR };
|
||||
inline auto constexpr TrHttpServerRpcRelativePath = std::string_view{ "rpc" };
|
||||
inline auto constexpr TrHttpServerWebRelativePath = std::string_view{ "web/" };
|
||||
|
||||
std::unique_lock<std::recursive_mutex> tr_sessionLock(tr_session const* session);
|
||||
|
||||
/**
|
||||
|
||||
@@ -103,7 +103,7 @@ std::array<Prefs::PrefItem, Prefs::PREFS_COUNT> const Prefs::Items{
|
||||
{ SESSION_REMOTE_PORT, TR_KEY_remote_session_port, QMetaType::Int },
|
||||
{ SESSION_REMOTE_AUTH, TR_KEY_remote_session_requires_authentication, QMetaType::Bool },
|
||||
{ SESSION_REMOTE_USERNAME, TR_KEY_remote_session_username, QMetaType::QString },
|
||||
{ SESSION_REMOTE_RPC_URL_PATH, TR_KEY_remote_session_rpc_url_path, QMetaType::QString },
|
||||
{ SESSION_REMOTE_URL_BASE_PATH, TR_KEY_remote_session_url_base_path, QMetaType::QString },
|
||||
{ COMPLETE_SOUND_COMMAND, TR_KEY_torrent_complete_sound_command, QMetaType::QStringList },
|
||||
{ COMPLETE_SOUND_ENABLED, TR_KEY_torrent_complete_sound_enabled, QMetaType::Bool },
|
||||
{ READ_CLIPBOARD, TR_KEY_read_clipboard, QMetaType::Bool },
|
||||
@@ -383,7 +383,7 @@ tr_variant Prefs::get_default_app_settings()
|
||||
settings.try_emplace(TR_KEY_remote_session_password, tr_variant::unmanaged_string(""sv));
|
||||
settings.try_emplace(TR_KEY_remote_session_port, TrDefaultRpcPort);
|
||||
settings.try_emplace(TR_KEY_remote_session_requires_authentication, false);
|
||||
settings.try_emplace(TR_KEY_remote_session_rpc_url_path, tr_variant::unmanaged_string(TR_DEFAULT_RPC_URL_STR "rpc"));
|
||||
settings.try_emplace(TR_KEY_remote_session_url_base_path, tr_variant::unmanaged_string(TrHttpServerDefaultBasePath));
|
||||
settings.try_emplace(TR_KEY_remote_session_username, tr_variant::unmanaged_string(""sv));
|
||||
settings.try_emplace(TR_KEY_show_backup_trackers, false);
|
||||
settings.try_emplace(TR_KEY_show_filterbar, true);
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
SESSION_REMOTE_PORT,
|
||||
SESSION_REMOTE_AUTH,
|
||||
SESSION_REMOTE_USERNAME,
|
||||
SESSION_REMOTE_RPC_URL_PATH,
|
||||
SESSION_REMOTE_URL_BASE_PATH,
|
||||
COMPLETE_SOUND_COMMAND,
|
||||
COMPLETE_SOUND_ENABLED,
|
||||
READ_CLIPBOARD,
|
||||
|
||||
@@ -347,7 +347,10 @@ void Session::start()
|
||||
}
|
||||
url.setHost(prefs_.get<QString>(Prefs::SESSION_REMOTE_HOST));
|
||||
url.setPort(prefs_.get<int>(Prefs::SESSION_REMOTE_PORT));
|
||||
url.setPath(prefs_.get<QString>(Prefs::SESSION_REMOTE_RPC_URL_PATH));
|
||||
|
||||
auto const root_path = prefs_.get<QString>(Prefs::SESSION_REMOTE_URL_BASE_PATH);
|
||||
auto const relative_path = TrHttpServerRpcRelativePath;
|
||||
url.setPath(root_path + QString::fromUtf8(relative_path.data(), relative_path.size()));
|
||||
|
||||
if (prefs_.get<bool>(Prefs::SESSION_REMOTE_AUTH))
|
||||
{
|
||||
@@ -1162,7 +1165,10 @@ void Session::launchWebInterface() const
|
||||
if (session_ == nullptr) // remote session
|
||||
{
|
||||
url = rpc_.url();
|
||||
url.setPath(QStringLiteral("/transmission/web/"));
|
||||
|
||||
auto const root_path = prefs_.get<QString>(Prefs::SESSION_REMOTE_URL_BASE_PATH);
|
||||
auto const relative_path = TrHttpServerWebRelativePath;
|
||||
url.setPath(root_path + QString::fromUtf8(relative_path.data(), relative_path.size()));
|
||||
}
|
||||
else // local session
|
||||
{
|
||||
|
||||
@@ -19,7 +19,7 @@ void SessionDialog::accept()
|
||||
prefs_.set(Prefs::SESSION_REMOTE_AUTH, ui_.authCheck->isChecked());
|
||||
prefs_.set(Prefs::SESSION_REMOTE_USERNAME, ui_.usernameEdit->text());
|
||||
prefs_.set(Prefs::SESSION_REMOTE_PASSWORD, ui_.passwordEdit->text());
|
||||
prefs_.set(Prefs::SESSION_REMOTE_RPC_URL_PATH, ui_.rpcEdit->text());
|
||||
prefs_.set(Prefs::SESSION_REMOTE_URL_BASE_PATH, ui_.rpcEdit->text());
|
||||
session_.restart();
|
||||
BaseDialog::accept();
|
||||
}
|
||||
@@ -73,7 +73,7 @@ SessionDialog::SessionDialog(Session& session, Prefs& prefs, QWidget* parent)
|
||||
ui_.passwordEdit->setText(prefs.get<QString>(Prefs::SESSION_REMOTE_PASSWORD));
|
||||
auth_widgets_ << ui_.passwordLabel << ui_.passwordEdit;
|
||||
|
||||
ui_.rpcEdit->setText(prefs.get<QString>(Prefs::SESSION_REMOTE_RPC_URL_PATH));
|
||||
ui_.rpcEdit->setText(prefs.get<QString>(Prefs::SESSION_REMOTE_URL_BASE_PATH));
|
||||
remote_widgets_ << ui_.rpcLabel << ui_.rpcEdit;
|
||||
|
||||
resensitize();
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="rpcLabel">
|
||||
<property name="text">
|
||||
<string>RPC URL pa&th:</string>
|
||||
<string>Remote root pa&th:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>rpcEdit</cstring>
|
||||
|
||||
Reference in New Issue
Block a user