diff --git a/src/main.cpp b/src/main.cpp index cf78968..b40ce82 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -189,7 +189,7 @@ if (AttachConsole(ATTACH_PARENT_PROCESS)) { // Prestium initial config if (config()->get(Config::firstRun).toBool() && Prestium::detect()) { config()->set(Config::proxy, Config::Proxy::i2p); - config()->set(Config::socks5Port, 4448); + config()->set(Config::socks5Port, Prestium::i2pPort()); } if (parser.isSet("use-local-tor")) diff --git a/src/utils/os/Prestium.cpp b/src/utils/os/Prestium.cpp index 80a5829..4cfe081 100644 --- a/src/utils/os/Prestium.cpp +++ b/src/utils/os/Prestium.cpp @@ -8,7 +8,24 @@ #include "utils/Utils.h" +#define PRESTIUM_DEFAULT_PORT 4448 + bool Prestium::detect() { return QSysInfo::prettyProductName().contains("Prestium"); +} + +int Prestium::i2pPort() +{ + QString portStr = qgetenv("PRESTIUM_FEATHER_I2P_PORT"); + if (portStr.isEmpty()) { + return PRESTIUM_DEFAULT_PORT; + } + + int port = portStr.toInt(); + if (port < 1 || port > 65535) { + return PRESTIUM_DEFAULT_PORT; + } + + return port; } \ No newline at end of file diff --git a/src/utils/os/Prestium.h b/src/utils/os/Prestium.h index 879c9a3..66bf1b9 100644 --- a/src/utils/os/Prestium.h +++ b/src/utils/os/Prestium.h @@ -8,6 +8,7 @@ class Prestium { public: static bool detect(); + static int i2pPort(); }; #endif //FEATHER_PRESTIUM_H