diff options
| author | crueter <crueter@eden-emu.dev> | 2026-02-04 04:16:39 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-02-04 04:16:39 +0100 |
| commit | d59fcf01bf9a7b3779e537adbbf5be483db8d381 (patch) | |
| tree | 41c21f00a62ece751fca9a7a175636fd4f70a77e /src/frontend_common | |
| parent | b8456394f1bdbdc20aad0f27150681c96136823b (diff) | |
[frontend] Generate web token at runtime (#3462)
Rather than having that hardcoded one like before. Also adds
infrastructure which should make it easier to setup defaults at runtime
(e.g. GPU stuff?)
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3462
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/frontend_common')
| -rw-r--r-- | src/frontend_common/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | src/frontend_common/settings_generator.cpp | 31 | ||||
| -rw-r--r-- | src/frontend_common/settings_generator.h | 14 |
3 files changed, 51 insertions, 3 deletions
diff --git a/src/frontend_common/CMakeLists.txt b/src/frontend_common/CMakeLists.txt index b8a282b234..2f75fede57 100644 --- a/src/frontend_common/CMakeLists.txt +++ b/src/frontend_common/CMakeLists.txt @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later # SPDX-FileCopyrightText: 2023 yuzu Emulator Project @@ -12,7 +12,8 @@ add_library(frontend_common STATIC firmware_manager.cpp data_manager.h data_manager.cpp play_time_manager.cpp - play_time_manager.h) + play_time_manager.h + settings_generator.h settings_generator.cpp) if (ENABLE_UPDATE_CHECKER) target_link_libraries(frontend_common PRIVATE httplib::httplib) @@ -29,4 +30,6 @@ if (ENABLE_UPDATE_CHECKER) endif() create_target_directory_groups(frontend_common) -target_link_libraries(frontend_common PUBLIC core SimpleIni::SimpleIni PRIVATE common Boost::headers) +target_link_libraries(frontend_common + PUBLIC core SimpleIni::SimpleIni frozen::frozen-headers + PRIVATE common Boost::headers) diff --git a/src/frontend_common/settings_generator.cpp b/src/frontend_common/settings_generator.cpp new file mode 100644 index 0000000000..0f09878b30 --- /dev/null +++ b/src/frontend_common/settings_generator.cpp @@ -0,0 +1,31 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#include <random> +#include <frozen/string.h> +#include "common/settings.h" +#include "settings_generator.h" + +namespace FrontendCommon { + +void GenerateSettings() { + static std::random_device rd; + + // Web Token // + auto &token_setting = Settings::values.eden_token; + if (token_setting.GetValue().empty()) { + static constexpr const size_t token_length = 48; + static constexpr const frozen::string token_set = "abcdefghijklmnopqrstuvwxyz"; + static std::uniform_int_distribution<int> token_dist(0, token_set.size() - 1); + std::string result; + + for (size_t i = 0; i < token_length; ++i) { + size_t idx = token_dist(rd); + result += token_set[idx]; + } + + token_setting.SetValue(result); + } +} + +} diff --git a/src/frontend_common/settings_generator.h b/src/frontend_common/settings_generator.h new file mode 100644 index 0000000000..9dc3d60f1b --- /dev/null +++ b/src/frontend_common/settings_generator.h @@ -0,0 +1,14 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +namespace FrontendCommon { + +/** + * @brief GenerateSettings Generate platform-specific or randomized settings. + * Run this function at initialization time for your frontend. + */ +void GenerateSettings(); + +} |
