From 5dc1e56a9d030fd60db89fab6c1158272970f3f7 Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Sat, 20 Jan 2024 10:47:43 +0800 Subject: [PATCH 2/5] src/network/ssl: upstream fixes See: https://github.com/fluxer/katie/commit/9289a463a8fc5a21409aa1adbcf5f58a13313056 --- src/network/ssl/qsslsocket_openssl.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git src/network/ssl/qsslsocket_openssl.cpp src/network/ssl/qsslsocket_openssl.cpp index c8ebc60a23..d6ae2a6b12 100644 --- src/network/ssl/qsslsocket_openssl.cpp +++ src/network/ssl/qsslsocket_openssl.cpp @@ -488,6 +488,10 @@ init_context: void QSslSocketBackendPrivate::destroySslContext() { if (ssl) { + // We do not send a shutdown alert here. Just mark the session as + // resumable for qhttpnetworkconnection's "optimization", otherwise + // OpenSSL won't start a session resumption. + q_SSL_shutdown(ssl); q_SSL_free(ssl); ssl = 0; } @@ -534,7 +538,6 @@ bool QSslSocketPrivate::ensureLibraryLoaded() QMutexLocker locker(openssl_locks()->initLock()); #endif if (!s_libraryLoaded) { - s_libraryLoaded = true; // Initialize OpenSSL. #if OPENSSL_VERSION_NUMBER < 0x10100000L @@ -572,6 +575,7 @@ bool QSslSocketPrivate::ensureLibraryLoaded() } while (!q_RAND_status() && --attempts); if (!attempts) return false; + s_libraryLoaded = true; } } return true;