2020-12-16 06:02:22 +03:00
|
|
|
#include <QDir>
|
|
|
|
|
|
2023-05-16 07:34:06 +07:00
|
|
|
#include "version.h"
|
2020-12-26 15:03:51 +03:00
|
|
|
#include "localserver.h"
|
2022-12-28 17:22:49 +03:00
|
|
|
#include "logger.h"
|
2020-12-26 23:17:20 +03:00
|
|
|
#include "systemservice.h"
|
2022-08-29 12:21:09 +04:30
|
|
|
#include "utilities.h"
|
2020-12-16 06:02:22 +03:00
|
|
|
|
2023-09-14 19:44:17 +03:00
|
|
|
#ifdef Q_OS_WIN
|
|
|
|
|
#include "platforms/windows/daemon/windowsdaemontunnel.h"
|
|
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
int s_argc = 0;
|
|
|
|
|
char** s_argv = nullptr;
|
|
|
|
|
} // namespace
|
|
|
|
|
|
|
|
|
|
#endif
|
2021-09-30 15:56:48 +03:00
|
|
|
|
2020-12-26 23:17:20 +03:00
|
|
|
int runApplication(int argc, char** argv)
|
|
|
|
|
{
|
|
|
|
|
QCoreApplication app(argc,argv);
|
2021-09-30 15:56:48 +03:00
|
|
|
|
2023-09-14 19:44:17 +03:00
|
|
|
#ifdef Q_OS_WIN
|
|
|
|
|
if(argc > 2){
|
|
|
|
|
s_argc = argc;
|
|
|
|
|
s_argv = argv;
|
|
|
|
|
QStringList tokens;
|
|
|
|
|
for (int i = 1; i < argc; ++i) {
|
|
|
|
|
tokens.append(QString(argv[i]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!tokens.empty() && tokens[0] == "tunneldaemon") {
|
|
|
|
|
WindowsDaemonTunnel *daemon = new WindowsDaemonTunnel();
|
|
|
|
|
daemon->run(tokens);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
LocalServer localServer;
|
2020-12-26 23:17:20 +03:00
|
|
|
return app.exec();
|
2023-09-14 19:44:17 +03:00
|
|
|
|
2020-12-26 23:17:20 +03:00
|
|
|
}
|
2021-09-30 15:56:48 +03:00
|
|
|
|
|
|
|
|
|
2020-12-16 06:02:22 +03:00
|
|
|
int main(int argc, char **argv)
|
|
|
|
|
{
|
2024-09-09 20:53:44 +04:00
|
|
|
Utils::initializePath(Logger::systemLogDir());
|
2020-12-26 15:03:51 +03:00
|
|
|
|
2023-09-14 19:44:17 +03:00
|
|
|
if (argc >= 2) {
|
2020-12-26 15:03:51 +03:00
|
|
|
qInfo() << "Started as console application";
|
2020-12-26 23:17:20 +03:00
|
|
|
return runApplication(argc, argv);
|
2021-09-30 15:56:48 +03:00
|
|
|
}
|
|
|
|
|
else {
|
2020-12-26 15:03:51 +03:00
|
|
|
qInfo() << "Started as system service";
|
2020-12-26 23:17:20 +03:00
|
|
|
#ifdef Q_OS_WIN
|
2020-12-26 15:03:51 +03:00
|
|
|
SystemService systemService(argc, argv);
|
|
|
|
|
return systemService.exec();
|
2020-12-26 23:17:20 +03:00
|
|
|
#else
|
2021-09-30 15:56:48 +03:00
|
|
|
return runApplication(argc, argv);
|
2020-12-26 23:17:20 +03:00
|
|
|
#endif
|
|
|
|
|
|
2020-12-26 15:03:51 +03:00
|
|
|
}
|
2020-12-16 06:02:22 +03:00
|
|
|
}
|