diff --git a/src/main.cpp b/src/main.cpp index 978ae95..0e07218 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,48 +2,52 @@ Server *server = nullptr; +void init() +{ + try + { + std::string ip = "0.0.0.0"; + int port = 8080; + printf("Start Init server\n"); + server = new Server(); + server->Init(); + + printf("Start Init sign\n"); + std::thread([=] { // Cannot use '&' capture!!!!! will cause crash + for (int i = 0; i < 10; i++) + { + try + { + if (Sign::Init()) + { + if (!server->Run(ip, port)) + printf("Server run failed\n"); + break; + } + } + catch (const std::exception &e) + { + printf("Init failed: %s\n", e.what()); + } + std::this_thread::sleep_for(std::chrono::seconds(1)); + } + }) + .detach(); + } + catch (const std::exception &e) + { + printf("Init failed: %s\n", e.what()); + } +} + +#if defined(_WIN_PLATFORM_) BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: - { - try - { - std::string ip = "0.0.0.0"; - int port = 8080; - printf("Start Init server\n"); - server = new Server(); - server->Init(); - - printf("Start Init sign\n"); - std::thread([=] { // Cannot use & capture!!!!! will cause crash - for (int i = 0; i < 10; i++) - { - try - { - if (Sign::Init()) - { - if (!server->Run(ip, port)) - printf("Server run failed\n"); - break; - } - } - catch (const std::exception &e) - { - printf("Init failed: %s\n", e.what()); - } - std::this_thread::sleep_for(std::chrono::seconds(1)); - } - }) - .detach(); - } - catch (const std::exception &e) - { - printf("Init failed: %s\n", e.what()); - } + init(); break; - } case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: @@ -57,4 +61,10 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) break; } return TRUE; -} \ No newline at end of file +} +#elif defined(_MAC_PLATFORM_) || defined(_LINUX_PLATFORM_) +int main() +{ + init(); +} +#endif \ No newline at end of file diff --git a/src/sign.cpp b/src/sign.cpp index 2d17628..d8ce17f 100644 --- a/src/sign.cpp +++ b/src/sign.cpp @@ -50,12 +50,13 @@ std::map addrMap = { {"6.9.20-17153", 0x1c73dd0}}; #endif #elif defined(_LINUX_PLATFORM_) -#define CURRENT_VERSION "3.2.7-23361" +#define CURRENT_VERSION "3.2.9-24815" #if defined(_X64_ARCH_) std::map addrMap = { {"3.1.2-12912", 0x33C38E0}, {"3.1.2-13107", 0x33C3920}, - {"3.2.7-23361", 0x4C93C57}}; + {"3.2.7-23361", 0x4C93C57}, + {"3.2.9-24815", 0x4E5D3B7}}; #elif defined(_ARM64_ARCH_) std::map addrMap = { {"3.2.7-23361", 0x351EC98}};