summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2018-06-20 10:49:31 +0200
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2018-06-21 15:10:55 +0000
commitd502d883fd104aa7a6b20cd49d1ea4c92715df71 (patch)
tree870a9741cf443c9c9cae0fa9944945cba14896d7
parentd77d4fc548075120213b8876259f65818cb9561e (diff)
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 <timur.pocheptsov@qt.io>
-rw-r--r--src/network/configure.json7
-rw-r--r--src/network/ssl/qdtls.h2
-rw-r--r--src/network/ssl/qdtls_openssl_p.h5
-rw-r--r--src/network/ssl/qdtls_p.h2
-rw-r--r--src/network/ssl/ssl.pri19
5 files changed, 27 insertions, 8 deletions
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 <QtCore/qcryptographichash.h>
#include <QtCore/qobject.h>
+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 <QtCore/qglobal.h>
-QT_REQUIRE_CONFIG(openssl);
-
#include <openssl/ossl_typ.h>
#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