From 6fa8ba087a9eaf4111d1d4845b13b5577962a766 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Thu, 25 Sep 2025 21:32:51 -0400 Subject: [PATCH] refactor: move remoteHost to coreArgs --- src/lib/deskflow/ArgParser.cpp | 5 ----- src/lib/deskflow/ClientApp.cpp | 5 +++-- src/lib/deskflow/ClientArgs.h | 6 ------ src/lib/deskflow/CoreArgParser.cpp | 4 ++++ src/lib/deskflow/CoreArgs.h | 5 ++++- src/lib/gui/core/CoreProcess.cpp | 8 -------- src/unittests/deskflow/ArgParserTests.cpp | 12 +----------- src/unittests/deskflow/ArgParserTests.h | 1 - src/unittests/deskflow/CoreArgParserTests.cpp | 10 ++++++++++ src/unittests/deskflow/CoreArgParserTests.h | 1 + 10 files changed, 23 insertions(+), 34 deletions(-) diff --git a/src/lib/deskflow/ArgParser.cpp b/src/lib/deskflow/ArgParser.cpp index d77d8e3fb..f55905f90 100644 --- a/src/lib/deskflow/ArgParser.cpp +++ b/src/lib/deskflow/ArgParser.cpp @@ -37,11 +37,6 @@ bool ArgParser::parseClientArgs(deskflow::ClientArgs &args, int argc, const char } else if (isArg(i, argc, argv, nullptr, "--camp") || isArg(i, argc, argv, nullptr, "--no-camp")) { // ignore -- included for backwards compatibility } else { - if (i + 1 == argc) { - args.m_serverAddress = argv[i]; - return true; - } - LOG_CRIT("%s: unrecognized option `%s'" BYE, "deskflow-core", argv[i], "deskflow-core"); return false; } diff --git a/src/lib/deskflow/ClientApp.cpp b/src/lib/deskflow/ClientApp.cpp index 72cb08b14..758be6908 100644 --- a/src/lib/deskflow/ClientApp.cpp +++ b/src/lib/deskflow/ClientApp.cpp @@ -81,9 +81,10 @@ void ClientApp::parseArgs(int argc, const char *const *argv) } } else { // save server address - if (!args().m_serverAddress.empty()) { + if (!Settings::value(Settings::Client::RemoteHost).isNull()) { try { - *m_serverAddress = NetworkAddress(args().m_serverAddress, kDefaultPort); + *m_serverAddress = + NetworkAddress(Settings::value(Settings::Client::RemoteHost).toString().toStdString(), kDefaultPort); m_serverAddress->resolve(); } catch (SocketAddressException &e) { // allow an address that we can't look up if we're restartable. diff --git a/src/lib/deskflow/ClientArgs.h b/src/lib/deskflow/ClientArgs.h index 37ade20e6..c24571bdf 100644 --- a/src/lib/deskflow/ClientArgs.h +++ b/src/lib/deskflow/ClientArgs.h @@ -17,11 +17,5 @@ public: ClientArgs(); ~ClientArgs() override = default; - -public: - /** - * @brief m_serverAddress stores deskflow server address - */ - std::string m_serverAddress; }; } // namespace deskflow diff --git a/src/lib/deskflow/CoreArgParser.cpp b/src/lib/deskflow/CoreArgParser.cpp index 024501ecf..24c11d506 100644 --- a/src/lib/deskflow/CoreArgParser.cpp +++ b/src/lib/deskflow/CoreArgParser.cpp @@ -138,6 +138,10 @@ void CoreArgParser::parse() (m_parser.value(CoreArgs::invertScrollOption) == "1")); Settings::setValue(Settings::Client::InvertScrollDirection, value); } + + if (m_parser.isSet(CoreArgs::remoteHostOption)) { + Settings::setValue(Settings::Client::RemoteHost, m_parser.value(CoreArgs::remoteHostOption)); + } } [[noreturn]] void CoreArgParser::showHelpText() const diff --git a/src/lib/deskflow/CoreArgs.h b/src/lib/deskflow/CoreArgs.h index da0c8cfd5..2cae48d34 100644 --- a/src/lib/deskflow/CoreArgs.h +++ b/src/lib/deskflow/CoreArgs.h @@ -77,9 +77,12 @@ struct CoreArgs "invertScrollDirection", "Client Mode: Set scroll direciton to be inverted (default: false)", "value" ); + inline static const auto remoteHostOption = + QCommandLineOption("remoteHost", "Client Mode: Sets the remote host in the settings file", "hostname"); + inline static const auto options = {helpOption, versionOption, configOption, interfaceOption, portOption, nameOption, logLevelOption, logFileOption, secureOption, tlsCertOption, preventSleepOption, restartOption, displayOption, useHooksOption, peerCheckOption, serverConfigOption, - yscrollOption, languageSyncOption, invertScrollOption}; + yscrollOption, languageSyncOption, invertScrollOption, remoteHostOption}; }; diff --git a/src/lib/gui/core/CoreProcess.cpp b/src/lib/gui/core/CoreProcess.cpp index c8be751ba..e729e1470 100644 --- a/src/lib/gui/core/CoreProcess.cpp +++ b/src/lib/gui/core/CoreProcess.cpp @@ -479,14 +479,6 @@ bool CoreProcess::addClientArgs(QStringList &args) args << "--log" << Settings::value(Settings::Log::File).toString(); } - if (correctedAddress().isEmpty()) { - Q_EMIT error(Error::AddressMissing); - qDebug("address is missing for client args"); - return false; - } - - args << correctedAddress() + ":" + Settings::value(Settings::Core::Port).toString(); - return true; } diff --git a/src/unittests/deskflow/ArgParserTests.cpp b/src/unittests/deskflow/ArgParserTests.cpp index 862d69ed1..a64e511ba 100644 --- a/src/unittests/deskflow/ArgParserTests.cpp +++ b/src/unittests/deskflow/ArgParserTests.cpp @@ -164,22 +164,12 @@ void ArgParserTests::assembleCommand() void ArgParserTests::clientArgs() { deskflow::ClientArgs args; - char const *argv[] = {kAppId, "--help", "--res-w", "888", "127.0.0.1"}; + char const *argv[] = {kAppId, "--help", "--res-w", "888"}; QVERIFY(m_parser.parseClientArgs(args, sizeof(argv) / sizeof(argv[0]), argv)); QVERIFY(args.m_shouldExitOk); } -void ArgParserTests::client_setAddress() -{ - deskflow::ClientArgs clientArgs; - const int argc = 2; - const char *kAddressCmd[argc] = {"stub", "mock_address"}; - - QVERIFY(m_parser.parseClientArgs(clientArgs, argc, kAddressCmd)); - QCOMPARE(clientArgs.m_serverAddress, "mock_address"); -} - void ArgParserTests::client_badArgs() { deskflow::ClientArgs clientArgs; diff --git a/src/unittests/deskflow/ArgParserTests.h b/src/unittests/deskflow/ArgParserTests.h index 31d5a9922..6cef8cdb6 100644 --- a/src/unittests/deskflow/ArgParserTests.h +++ b/src/unittests/deskflow/ArgParserTests.h @@ -22,7 +22,6 @@ private Q_SLOTS: void getArgv(); void assembleCommand(); void clientArgs(); - void client_setAddress(); void client_badArgs(); void deprecatedArg_crypoPass_true(); void deprecatedArg_crypoPass_false(); diff --git a/src/unittests/deskflow/CoreArgParserTests.cpp b/src/unittests/deskflow/CoreArgParserTests.cpp index ed700e443..7a02cee5a 100644 --- a/src/unittests/deskflow/CoreArgParserTests.cpp +++ b/src/unittests/deskflow/CoreArgParserTests.cpp @@ -410,6 +410,16 @@ void CoreArgParserTests::client_invertScrolling_0() QVERIFY(!Settings::value(Settings::Client::InvertScrollDirection).toBool()); } +void CoreArgParserTests::client_remoteHost() +{ + QStringList args = {"stub", "client", "--remoteHost", "127.0.0.1"}; + + CoreArgParser parser(args); + parser.parse(); + + QCOMPARE("127.0.0.1", Settings::value(Settings::Client::RemoteHost).toString()); +} + void CoreArgParserTests::preventSleep_true() { QStringList args = {"stub", "client", "--prevent-sleep", "true"}; diff --git a/src/unittests/deskflow/CoreArgParserTests.h b/src/unittests/deskflow/CoreArgParserTests.h index 524b1cbc1..86b61bc36 100644 --- a/src/unittests/deskflow/CoreArgParserTests.h +++ b/src/unittests/deskflow/CoreArgParserTests.h @@ -54,6 +54,7 @@ private Q_SLOTS: void client_invertScrolling_false(); void client_invertScrolling_1(); void client_invertScrolling_0(); + void client_remoteHost(); private: inline static const QString m_settingsPath = QStringLiteral("tmp/test");