diff options
| author | Ivan Solovev <ivan.solovev@qt.io> | 2025-07-14 18:10:03 +0200 |
|---|---|---|
| committer | Ivan Solovev <ivan.solovev@qt.io> | 2025-07-30 14:21:54 +0200 |
| commit | 78b23bda6834a466b378e4b25f13ebcf6fb97e65 (patch) | |
| tree | 1e00ea0485730d1c71ff76c4093eec6adf313b7d /src/qmlnetwork/ssl/qqmlsslconfiguration.cpp | |
| parent | d542f1a60f7617a3b9a465c18e08c5850d38407e (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.cpp | 18 |
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()); |
