From 42015de49b578108a1a82b8df947397d2d123ad4 Mon Sep 17 00:00:00 2001 From: comex Date: Sun, 25 Jun 2023 16:09:16 -0700 Subject: [PATCH] ssl: fix compatibility with OpenSSL 1.1.1 Turns out changes were needed after all. --- src/core/hle/service/ssl/ssl_backend_openssl.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core/hle/service/ssl/ssl_backend_openssl.cpp b/src/core/hle/service/ssl/ssl_backend_openssl.cpp index edbf0ad3e..bc797b76b 100644 --- a/src/core/hle/service/ssl/ssl_backend_openssl.cpp +++ b/src/core/hle/service/ssl/ssl_backend_openssl.cpp @@ -233,8 +233,10 @@ public: return 1; case BIO_CTRL_PUSH: case BIO_CTRL_POP: +#ifdef BIO_CTRL_GET_KTLS_SEND case BIO_CTRL_GET_KTLS_SEND: case BIO_CTRL_GET_KTLS_RECV: +#endif // We don't support these operations, but don't bother logging them // as they're nothing unusual. return 0; @@ -269,7 +271,14 @@ Result CheckOpenSSLErrors() { const char* func; const char* data; int flags; - while ((rc = ERR_get_error_all(&file, &line, &func, &data, &flags))) { +#if OPENSSL_VERSION_NUMBER >= 0x30000000L + while ((rc = ERR_get_error_all(&file, &line, &func, &data, &flags))) +#else + // Can't get function names from OpenSSL on this version, so use mine: + func = __func__; + while ((rc = ERR_get_error_line_data(&file, &line, &data, &flags))) +#endif + { std::string msg; msg.resize(1024, '\0'); ERR_error_string_n(rc, msg.data(), msg.size());