From dfbce391a7b4832b116e516b14af680f2f14778d Mon Sep 17 00:00:00 2001 From: acidicoala <67734819+acidicoala@users.noreply.github.com> Date: Thu, 12 Jan 2023 00:25:36 +0300 Subject: [PATCH] Added config reload via IPC pipes --- KoalaBox | 2 +- src/koalageddon/koalageddon.cpp | 17 +++++++++++++++++ src/smoke_api/config.hpp | 2 ++ src/smoke_api/smoke_api.cpp | 1 + 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/KoalaBox b/KoalaBox index 41649fd..c1e97c8 160000 --- a/KoalaBox +++ b/KoalaBox @@ -1 +1 @@ -Subproject commit 41649fd55c6b720b4136ab983640312cbddfdd8c +Subproject commit c1e97c8101fe0369985aad85298b1b6b3e3c9ca6 diff --git a/src/koalageddon/koalageddon.cpp b/src/koalageddon/koalageddon.cpp index b19132d..6d03317 100644 --- a/src/koalageddon/koalageddon.cpp +++ b/src/koalageddon/koalageddon.cpp @@ -8,6 +8,7 @@ #include #include #include +#include namespace koalageddon { @@ -117,5 +118,21 @@ namespace koalageddon { } } ); + + NEW_THREAD({ + koalabox::ipc::init_pipe_server("smoke_api.koalageddon", [](const koalabox::ipc::Request& request) { + koalabox::ipc::Response response; + + if (request.name < equals > "config::reload") { + smoke_api::config::ReloadConfig(); + response.success = true; + } else { + response.success = false; + response.data["error_message"] = "Invalid request name: " + request.name; + } + + return response; + }); + }) } } diff --git a/src/smoke_api/config.hpp b/src/smoke_api/config.hpp index ab070ea..ac4c3e8 100644 --- a/src/smoke_api/config.hpp +++ b/src/smoke_api/config.hpp @@ -54,4 +54,6 @@ namespace smoke_api::config { Vector get_extra_dlcs(AppId_t app_id); bool is_dlc_unlocked(uint32_t app_id, uint32_t dlc_id, const Function& original_function); + + DLL_EXPORT(void) ReloadConfig(); } diff --git a/src/smoke_api/smoke_api.cpp b/src/smoke_api/smoke_api.cpp index 919c5be..73ea5ab 100644 --- a/src/smoke_api/smoke_api.cpp +++ b/src/smoke_api/smoke_api.cpp @@ -113,6 +113,7 @@ namespace smoke_api { } else { init_proxy_mode(); } + LOG_INFO("🚀 Initialization complete") } catch (const Exception& ex) { koalabox::util::panic(fmt::format("Initialization error: {}", ex.what()));