summaryrefslogtreecommitdiffstats
path: root/src/plugins/tls
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/tls')
-rw-r--r--src/plugins/tls/openssl/qtlsbackend_openssl.cpp15
-rw-r--r--src/plugins/tls/openssl/qtlsbackend_openssl_p.h1
2 files changed, 6 insertions, 10 deletions
diff --git a/src/plugins/tls/openssl/qtlsbackend_openssl.cpp b/src/plugins/tls/openssl/qtlsbackend_openssl.cpp
index ea31086fad..b454a20f2a 100644
--- a/src/plugins/tls/openssl/qtlsbackend_openssl.cpp
+++ b/src/plugins/tls/openssl/qtlsbackend_openssl.cpp
@@ -59,7 +59,6 @@ static void q_loadCiphersForConnection(SSL *connection, QList<QSslCipher> &ciphe
}
}
-bool QTlsBackendOpenSSL::s_libraryLoaded = false;
bool QTlsBackendOpenSSL::s_loadedCiphersAndCerts = false;
int QTlsBackendOpenSSL::s_indexForSSLExtraData = -1;
@@ -92,12 +91,10 @@ void QTlsBackendOpenSSL::clearErrorQueue()
bool QTlsBackendOpenSSL::ensureLibraryLoaded()
{
- if (!q_resolveOpenSslSymbols())
- return false;
-
- const QMutexLocker locker(qt_opensslInitMutex());
+ static bool libraryLoaded = []() {
+ if (!q_resolveOpenSslSymbols())
+ return false;
- if (!s_libraryLoaded) {
// Initialize OpenSSL.
if (q_OPENSSL_init_ssl(0, nullptr) != 1)
return false;
@@ -119,10 +116,10 @@ bool QTlsBackendOpenSSL::ensureLibraryLoaded()
return false;
}
- s_libraryLoaded = true;
- }
+ return true;
+ }();
- return true;
+ return libraryLoaded;
}
QString QTlsBackendOpenSSL::backendName() const
diff --git a/src/plugins/tls/openssl/qtlsbackend_openssl_p.h b/src/plugins/tls/openssl/qtlsbackend_openssl_p.h
index 1c5e68e0c6..748ef13ac4 100644
--- a/src/plugins/tls/openssl/qtlsbackend_openssl_p.h
+++ b/src/plugins/tls/openssl/qtlsbackend_openssl_p.h
@@ -43,7 +43,6 @@ public:
static bool ensureLibraryLoaded();
// Index used in SSL_get_ex_data to get the matching TlsCryptographerOpenSSL:
- static bool s_libraryLoaded;
static bool s_loadedCiphersAndCerts;
static int s_indexForSSLExtraData;