From d502d883fd104aa7a6b20cd49d1ea4c92715df71 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 20 Jun 2018 10:49:31 +0200 Subject: SSL: Add a feature for DTLS For now the new feature depends on openssl as that is the only supported implementation. Once we get an implementation for SecureTransport, we can change the condition. The feature needs to be public because qdtls.h is a public header. Change-Id: Ie3e4acbeb2888f2fb13453b3ecdc19bacc83f6e6 Reviewed-by: Timur Pocheptsov --- src/network/configure.json | 7 +++++++ src/network/ssl/qdtls.h | 2 ++ src/network/ssl/qdtls_openssl_p.h | 5 +++-- src/network/ssl/qdtls_p.h | 2 ++ src/network/ssl/ssl.pri | 19 +++++++++++++------ 5 files changed, 27 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/network/configure.json b/src/network/configure.json index 4cbc476837..5245ba06b6 100644 --- a/src/network/configure.json +++ b/src/network/configure.json @@ -216,6 +216,13 @@ "condition": "config.winrt || features.securetransport || features.openssl", "output": [ "publicFeature", "feature" ] }, + "dtls": { + "label": "DTLS", + "purpose": "Provides a DTLS implementation", + "section": "Networking", + "condition": "features.openssl", + "output": [ "publicFeature" ] + }, "opensslv11": { "label": "OpenSSL 1.1", "condition": "features.openssl && tests.openssl11", diff --git a/src/network/ssl/qdtls.h b/src/network/ssl/qdtls.h index 859b8c2baa..34362e6f13 100644 --- a/src/network/ssl/qdtls.h +++ b/src/network/ssl/qdtls.h @@ -48,6 +48,8 @@ #include #include +QT_REQUIRE_CONFIG(dtls); + QT_BEGIN_NAMESPACE enum class QDtlsError : unsigned char diff --git a/src/network/ssl/qdtls_openssl_p.h b/src/network/ssl/qdtls_openssl_p.h index 6d8967d418..9306fa2433 100644 --- a/src/network/ssl/qdtls_openssl_p.h +++ b/src/network/ssl/qdtls_openssl_p.h @@ -44,8 +44,6 @@ #include -QT_REQUIRE_CONFIG(openssl); - #include #include "qdtls_p.h" @@ -72,6 +70,9 @@ QT_REQUIRE_CONFIG(openssl); // We mean it. // +QT_REQUIRE_CONFIG(openssl); +QT_REQUIRE_CONFIG(dtls); + QT_BEGIN_NAMESPACE class QDtlsPrivateOpenSSL; diff --git a/src/network/ssl/qdtls_p.h b/src/network/ssl/qdtls_p.h index 1170eabe74..ca4af0d129 100644 --- a/src/network/ssl/qdtls_p.h +++ b/src/network/ssl/qdtls_p.h @@ -68,6 +68,8 @@ // We mean it. // +QT_REQUIRE_CONFIG(dtls); + QT_BEGIN_NAMESPACE class QHostAddress; diff --git a/src/network/ssl/ssl.pri b/src/network/ssl/ssl.pri index 397005e14b..8919ec3819 100644 --- a/src/network/ssl/ssl.pri +++ b/src/network/ssl/ssl.pri @@ -56,13 +56,17 @@ qtConfig(ssl) { ssl/qsslellipticcurve_dummy.cpp } + qtConfig(dtls) { + HEADERS += ssl/qdtls.h \ + ssl/qdtls_p.h + + SOURCES += ssl/qdtls.cpp + } + qtConfig(openssl) { HEADERS += ssl/qsslcontext_openssl_p.h \ ssl/qsslsocket_openssl_p.h \ - ssl/qsslsocket_openssl_symbols_p.h \ - ssl/qdtls.h \ - ssl/qdtls_p.h \ - ssl/qdtls_openssl_p.h + ssl/qsslsocket_openssl_symbols_p.h SOURCES += ssl/qsslsocket_openssl_symbols.cpp \ ssl/qssldiffiehellmanparameters_openssl.cpp \ ssl/qsslcertificate_openssl.cpp \ @@ -70,8 +74,11 @@ qtConfig(ssl) { ssl/qsslkey_openssl.cpp \ ssl/qsslsocket_openssl.cpp \ ssl/qsslcontext_openssl.cpp \ - ssl/qdtls.cpp \ - ssl/qdtls_openssl.cpp + + qtConfig(dtls) { + HEADERS += ssl/qdtls_openssl_p.h + SOURCES += ssl/qdtls_openssl.cpp + } qtConfig(opensslv11) { HEADERS += ssl/qsslsocket_openssl11_symbols_p.h -- cgit v1.2.3