summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL/OpenSSLEngine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceSSL/OpenSSLEngine.cpp')
-rw-r--r--cpp/src/IceSSL/OpenSSLEngine.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/cpp/src/IceSSL/OpenSSLEngine.cpp b/cpp/src/IceSSL/OpenSSLEngine.cpp
index 8a6af245907..25320a03a8a 100644
--- a/cpp/src/IceSSL/OpenSSLEngine.cpp
+++ b/cpp/src/IceSSL/OpenSSLEngine.cpp
@@ -41,7 +41,7 @@ IceUtil::Mutex* staticMutex = 0;
int instanceCount = 0;
bool initOpenSSL = false;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
IceUtil::Mutex* locks = 0;
#endif
@@ -53,7 +53,7 @@ extern "C"
// OpenSSL 1.1.0 introduces a new thread API and removes
// the need to use a custom thread callback.
//
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
//
// OpenSSL mutex callback.
//
@@ -124,7 +124,7 @@ IceSSL_opensslPasswordCallback(char* buf, int size, int flag, void* userData)
DH*
IceSSL_opensslDHCallback(SSL* ssl, int /*isExport*/, int keyLength)
{
-# if OPENSSL_VERSION_NUMBER >= 0x10100000L
+# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
SSL_CTX* ctx = SSL_get_SSL_CTX(ssl);
# else
SSL_CTX* ctx = ssl->ctx;
@@ -154,7 +154,7 @@ public:
// OpenSSL 1.1.0 introduces a new thread API and removes
// the need to use a custom thread callback.
//
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
if(CRYPTO_get_locking_callback() == IceSSL_opensslLockCallback)
{
assert(locks);
@@ -222,11 +222,12 @@ OpenSSLEngine::OpenSSLEngine(const CommunicatorPtr& communicator) :
//
// OpenSSL 1.1.0 remove the need for library initialization and cleanup.
//
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
if(!CRYPTO_get_id_callback())
{
CRYPTO_set_id_callback(IceSSL_opensslThreadIdCallback);
}
+
//
// Create the mutexes and set the callbacks.
//
@@ -333,7 +334,7 @@ OpenSSLEngine::~OpenSSLEngine()
//
// OpenSSL 1.1.0 remove the need for library initialization and cleanup.
//
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
//
// Clean up OpenSSL resources.
//
@@ -406,7 +407,7 @@ OpenSSLEngine::initialize()
"IceSSL: unable to create SSL context:\n" + sslErrors());
}
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
int securityLevel = properties->getPropertyAsIntWithDefault(propPrefix + "SecurityLevel", -1);
if(securityLevel != -1)
{
@@ -961,7 +962,7 @@ OpenSSLEngine::parseProtocols(const StringSeq& protocols) const
SSL_METHOD*
OpenSSLEngine::getMethod(int /*protocols*/)
{
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
SSL_METHOD* meth = const_cast<SSL_METHOD*>(TLS_method());
#else
//