aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlnetwork/ssl/qqmlsslconfiguration.cpp
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2025-07-14 18:10:03 +0200
committerIvan Solovev <ivan.solovev@qt.io>2025-07-30 14:21:54 +0200
commit78b23bda6834a466b378e4b25f13ebcf6fb97e65 (patch)
tree1e00ea0485730d1c71ff76c4093eec6adf313b7d /src/qmlnetwork/ssl/qqmlsslconfiguration.cpp
parentd542f1a60f7617a3b9a465c18e08c5850d38407e (diff)
QQmlSslConfiguration: introduce sslOptionFlags property
It should replace the sslOptions property which is out-of-sync with the underlying configuration and does not allow to reset an option once it is set. [ChangeLog][QQmlNetwork][sslConfiguration/sslDtlsConfiguration] Added an sslOptionFlags property. Use it instead of the sslOptions property. Task-number: QTBUG-137900 Change-Id: Ic2ce9059514742b597ea2d9a187fadcef1f4cc36 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmlnetwork/ssl/qqmlsslconfiguration.cpp')
-rw-r--r--src/qmlnetwork/ssl/qqmlsslconfiguration.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/qmlnetwork/ssl/qqmlsslconfiguration.cpp b/src/qmlnetwork/ssl/qqmlsslconfiguration.cpp
index 8c848ca5f2..1503cd7202 100644
--- a/src/qmlnetwork/ssl/qqmlsslconfiguration.cpp
+++ b/src/qmlnetwork/ssl/qqmlsslconfiguration.cpp
@@ -8,6 +8,8 @@
#include <array>
QT_BEGIN_NAMESPACE
+
+// Keep in sync with QSsl::SslOption!
static constexpr std::array<QSsl::SslOption, 8> SslOptions = {
QSsl::SslOptionDisableEmptyFragments,
QSsl::SslOptionDisableSessionTickets,
@@ -49,6 +51,16 @@ QByteArray QQmlSslConfiguration::sessionTicket() const
return m_configuration.sessionTicket();
}
+QSsl::SslOptions QQmlSslConfiguration::sslOptionFlags() const
+{
+ QSsl::SslOptions options{};
+ for (auto opt : SslOptions) {
+ if (m_configuration.testSslOption(opt))
+ options |= opt;
+ }
+ return options;
+}
+
QSslConfiguration const QQmlSslConfiguration::configuration()
{
return m_configuration;
@@ -128,6 +140,12 @@ void QQmlSslConfiguration::setSessionTicket(const QByteArray &sessionTicket)
m_configuration.setSessionTicket(sessionTicket);
}
+void QQmlSslConfiguration::setSslOptionFlags(QSsl::SslOptions options)
+{
+ for (auto opt : SslOptions)
+ m_configuration.setSslOption(opt, options & opt);
+}
+
void QQmlSslConfiguration::setPrivateKey(const QQmlSslKey &privateKey)
{
m_configuration.setPrivateKey(privateKey.getSslKey());