Load openssl libs from working directory / fix log

- OpenSSL is being copied to the exe directory on build but nothing was loading the local dlls
- Add OpenSSL path loading from the working directory
- Add step to copy legacy.dll for openssl since it is a runtime dll
- This removes the requirement to install OpenSSL on the system
- The working directory can be separate from the exe directory if the user still requires this functionality
- Change logging to always be active when the system starts
This commit is contained in:
Knightly
2026-05-05 13:18:49 +12:00
parent 85c3255568
commit e5df0172d0
3 changed files with 18 additions and 6 deletions
+10
View File
@@ -37,3 +37,13 @@ target_include_directories(loginserver PRIVATE ..)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set_property(TARGET loginserver PROPERTY FOLDER executables/servers) set_property(TARGET loginserver PROPERTY FOLDER executables/servers)
# vcpkg doesn't copy legacy.dll automatically because it is loaded at runtime, not via the import table.
if(WIN32 AND DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET)
add_custom_command(TARGET loginserver POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"$<IF:$<CONFIG:Debug>,${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/bin/legacy.dll,${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/legacy.dll>"
"$<TARGET_FILE_DIR:loginserver>/legacy.dll"
VERBATIM
)
endif()
+7
View File
@@ -31,6 +31,7 @@
#endif #endif
#include <cstring> #include <cstring>
#include <filesystem>
#include <string> #include <string>
#include <memory> #include <memory>
@@ -182,6 +183,12 @@ static OSSL_PROVIDER *s_default_provider = nullptr;
bool eqcrypt_init() bool eqcrypt_init()
{ {
#ifdef EQEMU_USE_OPENSSL #ifdef EQEMU_USE_OPENSSL
#ifdef _WIN32
// Set OpenSSL default provider search path to the working directory. Okay to throw.
std::string search_path = std::filesystem::current_path().string();
OSSL_PROVIDER_set_default_search_path(nullptr, search_path.c_str());
#endif
if (!s_default_provider) { if (!s_default_provider) {
s_default_provider = OSSL_PROVIDER_load(nullptr, "default"); s_default_provider = OSSL_PROVIDER_load(nullptr, "default");
} }
+1 -6
View File
@@ -159,6 +159,7 @@ void start_web_server()
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
RegisterExecutablePlatform(ExePlatformLogin); RegisterExecutablePlatform(ExePlatformLogin);
EQEmuLogSys::Instance()->LoadLogSettingsDefaults();
set_exception_handler(); set_exception_handler();
if (!eqcrypt_init()) { if (!eqcrypt_init()) {
@@ -166,12 +167,6 @@ int main(int argc, char **argv)
return 1; return 1;
} }
LogInfo("Logging System Init");
if (argc == 1) {
EQEmuLogSys::Instance()->LoadLogSettingsDefaults();
}
PathManager::Instance()->Init(); PathManager::Instance()->Init();
// command handler // command handler