55 lines
1.5 KiB
Diff
55 lines
1.5 KiB
Diff
![]() |
--- src/blocxx/SSLCtxMgr.cpp.orig
|
||
|
+++ src/blocxx/SSLCtxMgr.cpp
|
||
|
@@ -53,6 +53,9 @@
|
||
|
|
||
|
#include <openssl/rand.h>
|
||
|
#include <openssl/err.h>
|
||
|
+#if defined(BLOCXX_HAVE_OPENSSL_ENGINE_H) && !defined(OPENSSL_NO_ENGINE)
|
||
|
+#include <openssl/engine.h>
|
||
|
+#endif
|
||
|
#include <cstring>
|
||
|
#include <csignal>
|
||
|
#include <cerrno>
|
||
|
@@ -190,6 +193,10 @@ struct SSLGlobalWork
|
||
|
|
||
|
SSL_library_init();
|
||
|
SSL_load_error_strings();
|
||
|
+#if defined(BLOCXX_HAVE_OPENSSL_ENGINE_H) && !defined(OPENSSL_NO_ENGINE)
|
||
|
+ ENGINE_load_builtin_engines();
|
||
|
+ ENGINE_register_all_complete();
|
||
|
+#endif
|
||
|
}
|
||
|
initLock.release();
|
||
|
|
||
|
@@ -326,6 +333,9 @@ SSLCtxMgr::initCtx(const String& certfil
|
||
|
{
|
||
|
BLOCXX_THROW(SSLException, Format("SSLCtxMgr::initCtx(): SSL_CTX_new returned 0: %1", getOpenSSLErrorDescription()).c_str());
|
||
|
}
|
||
|
+#ifdef SSL_MODE_RELEASE_BUFFERS
|
||
|
+ SSL_CTX_set_mode(ctx, SSL_MODE_RELEASE_BUFFERS);
|
||
|
+#endif
|
||
|
SSL_CTX_set_default_passwd_cb(ctx, pem_passwd_cb);
|
||
|
if (!certfile.empty())
|
||
|
{
|
||
|
--- configure.in.orig
|
||
|
+++ configure.in
|
||
|
@@ -39,7 +39,8 @@ AM_MAINTAINER_MODE
|
||
|
|
||
|
dnl Checks for programs.
|
||
|
AC_CANONICAL_HOST
|
||
|
-AC_PROG_CC
|
||
|
+AC_PROG_CC_STDC
|
||
|
+AC_USE_SYSTEM_EXTENSIONS
|
||
|
AC_PROG_CXX
|
||
|
AC_LANG_C
|
||
|
#AC_LANG_CPLUSPLUS
|
||
|
@@ -1417,7 +1418,7 @@ AC_CACHE_CHECK([for OpenSSL directory],
|
||
|
CPPFLAGS="$saved_CPPFLAGS -I$ssldir"
|
||
|
fi
|
||
|
fi
|
||
|
-
|
||
|
+ AC_CHECK_HEADERS([openssl/engine.h])
|
||
|
# Basic test to check for compatible version and correct linking
|
||
|
# *does not* test for RSA - that comes later.
|
||
|
AC_TRY_COMPILE(
|