refactor: remove ClientArgs

This commit is contained in:
sithlord48 2025-09-25 21:55:39 -04:00 committed by Chris Rizzitello
parent 6fa8ba087a
commit 37827f0540
15 changed files with 20 additions and 138 deletions

View file

@ -9,7 +9,6 @@
#include "base/Log.h" #include "base/Log.h"
#include "deskflow/App.h" #include "deskflow/App.h"
#include "deskflow/ArgsBase.h" #include "deskflow/ArgsBase.h"
#include "deskflow/ClientArgs.h"
#ifdef WINAPI_MSWINDOWS #ifdef WINAPI_MSWINDOWS
#include <VersionHelpers.h> #include <VersionHelpers.h>
@ -24,38 +23,6 @@ ArgParser::ArgParser(App *app) : m_app(app)
{ {
} }
bool ArgParser::parseClientArgs(deskflow::ClientArgs &args, int argc, const char *const *argv) const
{
setArgsBase(args);
int i{1};
while (i < argc) {
if (parseGenericArgs(argc, argv, i) || parseDeprecatedArgs(argc, argv, i) ||
isArg(i, argc, argv, nullptr, "client")) {
++i;
continue;
} else if (isArg(i, argc, argv, nullptr, "--camp") || isArg(i, argc, argv, nullptr, "--no-camp")) {
// ignore -- included for backwards compatibility
} else {
LOG_CRIT("%s: unrecognized option `%s'" BYE, "deskflow-core", argv[i], "deskflow-core");
return false;
}
++i;
}
// exactly one non-option argument (server-address)
if (i == argc && !args.m_shouldExitFail && !args.m_shouldExitOk) {
LOG_CRIT("%s: a server address or name is required" BYE, "deskflow-core", "deskflow-core");
return false;
}
if (checkUnexpectedArgs()) {
return false;
}
return true;
}
bool ArgParser::parseGenericArgs(int argc, const char *const *argv, int &i) const bool ArgParser::parseGenericArgs(int argc, const char *const *argv, int &i) const
{ {
if (isArg(i, argc, argv, "-h", "--help")) { if (isArg(i, argc, argv, "-h", "--help")) {

View file

@ -12,7 +12,6 @@
namespace deskflow { namespace deskflow {
class ArgsBase; class ArgsBase;
class ServerArgs; class ServerArgs;
class ClientArgs;
} // namespace deskflow } // namespace deskflow
class App; class App;
@ -23,7 +22,6 @@ class ArgParser
public: public:
explicit ArgParser(App *app); explicit ArgParser(App *app);
bool parseClientArgs(deskflow::ClientArgs &args, int argc, const char *const *argv) const;
bool parseGenericArgs(int argc, const char *const *argv, int &i) const; bool parseGenericArgs(int argc, const char *const *argv, int &i) const;
bool parseDeprecatedArgs(int argc, const char *const *argv, int &i) const; bool parseDeprecatedArgs(int argc, const char *const *argv, int &i) const;
void setArgsBase(deskflow::ArgsBase &argsBase) const void setArgsBase(deskflow::ArgsBase &argsBase) const

View file

@ -74,8 +74,6 @@ add_library(${lib_name} STATIC ${PLATFORM_CODE}
Chunk.h Chunk.h
ClientApp.cpp ClientApp.cpp
ClientApp.h ClientApp.h
ClientArgs.cpp
ClientArgs.h
ClipboardTypes.h ClipboardTypes.h
Clipboard.cpp Clipboard.cpp
Clipboard.h Clipboard.h

View file

@ -17,7 +17,7 @@
#include "common/ExitCodes.h" #include "common/ExitCodes.h"
#include "common/Settings.h" #include "common/Settings.h"
#include "deskflow/ArgParser.h" #include "deskflow/ArgParser.h"
#include "deskflow/ClientArgs.h" #include "deskflow/ArgsBase.h"
#include "deskflow/ProtocolTypes.h" #include "deskflow/ProtocolTypes.h"
#include "deskflow/Screen.h" #include "deskflow/Screen.h"
#include "deskflow/ScreenException.h" #include "deskflow/ScreenException.h"
@ -63,39 +63,28 @@
constexpr static auto s_retryTime = 1.0; constexpr static auto s_retryTime = 1.0;
ClientApp::ClientApp(IEventQueue *events, const QString &processName) ClientApp::ClientApp(IEventQueue *events, const QString &processName)
: App(events, processName, new deskflow::ClientArgs()) : App(events, processName, new deskflow::ArgsBase())
{ {
// do nothing // do nothing
} }
void ClientApp::parseArgs(int argc, const char *const *argv) void ClientApp::parseArgs(int, const char *const *)
{ {
ArgParser argParser(this); // save server address
bool result = argParser.parseClientArgs(args(), argc, argv); if (!Settings::value(Settings::Client::RemoteHost).isNull()) {
try {
if (!result || args().m_shouldExitOk || args().m_shouldExitFail) { *m_serverAddress =
if (args().m_shouldExitOk) { NetworkAddress(Settings::value(Settings::Client::RemoteHost).toString().toStdString(), kDefaultPort);
bye(s_exitSuccess); m_serverAddress->resolve();
} else { } catch (SocketAddressException &e) {
bye(s_exitArgs); // allow an address that we can't look up if we're restartable.
} // we'll try to resolve the address each time we connect to the
} else { // server. a bad port will never get better. patch by Brent
// save server address // Priddy.
if (!Settings::value(Settings::Client::RemoteHost).isNull()) { if (!Settings::value(Settings::Core::RestartOnFailure).toBool() ||
try { e.getError() == SocketAddressException::SocketError::BadPort) {
*m_serverAddress = LOG_CRIT("%s: %s" BYE, qPrintable(processName()), e.what(), qPrintable(processName()));
NetworkAddress(Settings::value(Settings::Client::RemoteHost).toString().toStdString(), kDefaultPort); bye(s_exitFailed);
m_serverAddress->resolve();
} catch (SocketAddressException &e) {
// allow an address that we can't look up if we're restartable.
// we'll try to resolve the address each time we connect to the
// server. a bad port will never get better. patch by Brent
// Priddy.
if (!Settings::value(Settings::Core::RestartOnFailure).toBool() ||
e.getError() == SocketAddressException::SocketError::BadPort) {
LOG_CRIT("%s: %s" BYE, qPrintable(processName()), e.what(), qPrintable(processName()));
bye(s_exitFailed);
}
} }
} }
} }

View file

@ -31,7 +31,7 @@ public:
// IApp overrides // IApp overrides
// //
void parseArgs(int argc, const char *const *argv) override; void parseArgs(int, const char *const *) override;
void help() override; void help() override;
const char *daemonName() const override; const char *daemonName() const override;
const char *daemonInfo() const override; const char *daemonInfo() const override;
@ -78,11 +78,6 @@ public:
return m_client; return m_client;
} }
deskflow::ClientArgs &args() const
{
return (deskflow::ClientArgs &)argsBase();
}
// //
// Static functions // Static functions
// //

View file

@ -1,15 +0,0 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2014 - 2016 Symless Ltd.
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#include "ClientArgs.h"
namespace deskflow {
ClientArgs::ClientArgs()
{
m_classType = ClassType::Client;
}
} // namespace deskflow

View file

@ -1,21 +0,0 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2014 - 2016 Symless Ltd.
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#pragma once
#include "ArgsBase.h"
namespace deskflow {
class ClientArgs : public ArgsBase
{
/// Public functions
public:
ClientArgs();
~ClientArgs() override = default;
};
} // namespace deskflow

View file

@ -7,8 +7,6 @@
#include "deskflow/KeyState.h" #include "deskflow/KeyState.h"
#include "base/Log.h" #include "base/Log.h"
#include "deskflow/ClientApp.h"
#include "deskflow/ClientArgs.h"
#include <algorithm> #include <algorithm>
#include <cstring> #include <cstring>

View file

@ -8,7 +8,6 @@
#pragma once #pragma once
#include "common/Settings.h" #include "common/Settings.h"
#include "deskflow/ClientArgs.h"
#include "deskflow/IPlatformScreen.h" #include "deskflow/IPlatformScreen.h"
#include <stdexcept> #include <stdexcept>

View file

@ -16,6 +16,7 @@
#include "common/Settings.h" #include "common/Settings.h"
#include "deskflow/App.h" #include "deskflow/App.h"
#include "deskflow/ArgParser.h" #include "deskflow/ArgParser.h"
#include "deskflow/ArgsBase.h"
#include "deskflow/Screen.h" #include "deskflow/Screen.h"
#include "deskflow/ScreenException.h" #include "deskflow/ScreenException.h"
#include "net/SocketException.h" #include "net/SocketException.h"

View file

@ -8,7 +8,6 @@
#pragma once #pragma once
#include "deskflow/ClientArgs.h"
#include "deskflow/PlatformScreen.h" #include "deskflow/PlatformScreen.h"
#include "platform/MSWindowsHook.h" #include "platform/MSWindowsHook.h"
#include "platform/MSWindowsPowerManager.h" #include "platform/MSWindowsPowerManager.h"

View file

@ -18,7 +18,6 @@
#include "deskflow/App.h" #include "deskflow/App.h"
#include "deskflow/ArgsBase.h" #include "deskflow/ArgsBase.h"
#include "deskflow/ClientApp.h" #include "deskflow/ClientApp.h"
#include "deskflow/ClientArgs.h"
#include "deskflow/Clipboard.h" #include "deskflow/Clipboard.h"
#include "deskflow/KeyMap.h" #include "deskflow/KeyMap.h"
#include "deskflow/ScreenException.h" #include "deskflow/ScreenException.h"

View file

@ -9,7 +9,6 @@
#pragma once #pragma once
#include "arch/Arch.h" #include "arch/Arch.h"
#include "deskflow/ClientArgs.h"
#include "deskflow/KeyMap.h" #include "deskflow/KeyMap.h"
#include "deskflow/PlatformScreen.h" #include "deskflow/PlatformScreen.h"
#include "platform/XDGPowerManager.h" #include "platform/XDGPowerManager.h"

View file

@ -8,7 +8,6 @@
#include "ArgParserTests.h" #include "ArgParserTests.h"
#include "deskflow/ArgsBase.h" #include "deskflow/ArgsBase.h"
#include "deskflow/ClientArgs.h"
// This file is generated at build time // This file is generated at build time
#include <common/Constants.h> #include <common/Constants.h>
@ -161,27 +160,6 @@ void ArgParserTests::assembleCommand()
QCOMPARE(command, "\"stub1 space\" stub2 \"stub3 space\""); QCOMPARE(command, "\"stub1 space\" stub2 \"stub3 space\"");
} }
void ArgParserTests::clientArgs()
{
deskflow::ClientArgs args;
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_badArgs()
{
deskflow::ClientArgs clientArgs;
const int argc = 1;
const char *kNoAddressCmd[argc] = {"stub"};
QVERIFY(!m_parser.parseClientArgs(clientArgs, argc, kNoAddressCmd));
const int argc2 = 3;
const char *kUnrecognizedCmd[argc2] = {"stub", "mock_arg", "mock_address"};
QVERIFY(!m_parser.parseClientArgs(clientArgs, argc2, kUnrecognizedCmd));
}
void ArgParserTests::deprecatedArg_crypoPass_true() void ArgParserTests::deprecatedArg_crypoPass_true()
{ {
int i = 1; int i = 1;

View file

@ -21,8 +21,6 @@ private Q_SLOTS:
void splitCommand(); void splitCommand();
void getArgv(); void getArgv();
void assembleCommand(); void assembleCommand();
void clientArgs();
void client_badArgs();
void deprecatedArg_crypoPass_true(); void deprecatedArg_crypoPass_true();
void deprecatedArg_crypoPass_false(); void deprecatedArg_crypoPass_false();