From 57217d85a1c2f7b920bb4e443ff96962b2fa694d Mon Sep 17 00:00:00 2001 From: crueter Date: Tue, 13 Jan 2026 14:13:50 -0500 Subject: [PATCH] bundled openSSL support Signed-off-by: crueter --- src/core/CMakeLists.txt | 1 - src/core/hle/service/bcat/news/builtin_news.cpp | 17 +++++++++++++++-- src/frontend_common/CMakeLists.txt | 6 ++---- src/qt_common/discord/discord_impl.cpp | 2 +- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index e31d02ac98..c1a38c1670 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -1212,7 +1212,6 @@ else() endif() target_link_libraries(core PRIVATE fmt::fmt nlohmann_json::nlohmann_json RenderDoc::API MbedTLS::mbedcrypto${MBEDTLS_LIB_SUFFIX} MbedTLS::mbedtls${MBEDTLS_LIB_SUFFIX}) - target_link_libraries(core PRIVATE httplib::httplib) if (ENABLE_WEB_SERVICE) diff --git a/src/core/hle/service/bcat/news/builtin_news.cpp b/src/core/hle/service/bcat/news/builtin_news.cpp index 81be251c85..e57fab94c1 100644 --- a/src/core/hle/service/bcat/news/builtin_news.cpp +++ b/src/core/hle/service/bcat/news/builtin_news.cpp @@ -6,7 +6,6 @@ #include "core/hle/service/bcat/news/news_storage.h" #include "common/fs/file.h" -#include "common/fs/fs.h" #include "common/fs/path_util.h" #include "common/logging/log.h" @@ -14,7 +13,6 @@ #include #include -#include #include #include #include @@ -23,6 +21,10 @@ #include #include +#ifdef YUZU_BUNDLED_OPENSSL +#include +#endif + namespace Service::News { namespace { @@ -92,6 +94,10 @@ std::vector LoadLogo() { cli.set_connection_timeout(std::chrono::seconds(10)); cli.set_read_timeout(std::chrono::seconds(30)); +#ifdef YUZU_BUNDLED_OPENSSL + cli.load_ca_cert_store(kCert, sizeof(kCert)); +#endif + if (auto res = cli.Get("/1OuqHlk.jpeg"); res && res->status == 200 && !res->body.empty()) { g_logo_cache.assign(res->body.begin(), res->body.end()); @@ -135,12 +141,19 @@ std::optional DownloadReleasesJson() { {"Accept", "application/vnd.github+json"}, }; + // TODO(crueter): automate this in some way... +#ifdef YUZU_BUNDLED_OPENSSL + cli.load_ca_cert_store(kCert, sizeof(kCert)); +#endif + if (auto res = cli.Get(GitHubAPI_EdenReleases, headers); res && res->status < 400) { return res->body; } } catch (...) { LOG_WARNING(Service_BCAT, " failed to download releases"); } + + return std::nullopt; } // idk but News App does not render Markdown or HTML, so remove some formatting. diff --git a/src/frontend_common/CMakeLists.txt b/src/frontend_common/CMakeLists.txt index 911f3ebdca..b8a282b234 100644 --- a/src/frontend_common/CMakeLists.txt +++ b/src/frontend_common/CMakeLists.txt @@ -12,16 +12,14 @@ 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) if (ENABLE_UPDATE_CHECKER) target_link_libraries(frontend_common PRIVATE httplib::httplib) target_link_libraries(frontend_common PRIVATE nlohmann_json::nlohmann_json) target_sources(frontend_common PRIVATE update_checker.cpp - update_checker.h - ) + update_checker.h) if (ENABLE_OPENSSL) target_compile_definitions(frontend_common PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT) diff --git a/src/qt_common/discord/discord_impl.cpp b/src/qt_common/discord/discord_impl.cpp index 3bf5544198..8e43c6b49b 100644 --- a/src/qt_common/discord/discord_impl.cpp +++ b/src/qt_common/discord/discord_impl.cpp @@ -100,7 +100,7 @@ void DiscordImpl::Update() { "https://raw.githubusercontent.com/eden-emulator/boxart/refs/heads/master/img/{}.png", icon_name); - httplib::SSLClient client(game_url); + httplib::Client client(game_url); client.set_connection_timeout(3); client.set_read_timeout(3); client.set_follow_location(true);