qt5base-lts/config.tests
Richard J. Moore cfbe03a6e0 QSslSocket: OpenSSL 1.1 backend
This patch-set implements a new QSslSocket backend based on OpenSSL 1.1.

1. General.

The code in this patch was organized to achieve these (somewhat contradicting)
objectives:
- keep the new code free of #if-ery, as far as possible;
- make it easy to clean away dead code when we're eventually able to retire
  out-dated OpenSSL versions;
- reduce the amount of code duplication.

If changes in some file/component were insignificant (~5 one-liners per file),
we still use pp-checks like: #if QT_CONFIG(opensslv11) ... #else ... #endif -
the logic is simple and it's still easy to clean the code if we remove the legacy
back-end. Where it saved #if-ery, we also introduced 'forward-compatible'
macros implementing equivalents of 1.1 functions using older OpenSSL.

In case some class contains a lot of version-specific ifdefs (particularly where
nested #if-ery was complex) we choose to split code into: "pre11" h/cpp files,
"shared" h/cpp files (they preserve their original names, e.g qsslsocket_openssl.cpp)
and "11" h/cpp files. If in future we remove the legacy back-end, "pre11" should be
removed; "shared" and "11" parts - merged.

2. Configuration.

We introduced a new feature 'opensslv11' which complements the pre-existing
'openssl' and 'openssl-linked' features. The 'opensslv11' feature is enabled
by a simple test which either compiles successfully or ends in a compilation
error, depending on a value of the OPENSSL_VERSION_NUMBER constant. If the
feature was enabled, we also append an additional compilation flag
-DOPENSSL_API_COMPAT=0x10100000L to make sure our new code does not contain
deprecated structures, function calls, macro-invocations from OpenSSL < 1.1.

Change-Id: I2064efbe9685def5d2bb2233a66f7581954fb74a
Reviewed-by: André Klitzing <aklitzing@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-07-04 18:03:59 +00:00
..
arch Make build ABI available as qmake variable 2017-03-28 06:51:42 +00:00
common Add proper detection of x86 RDRAND instruction 2017-06-12 06:14:48 +00:00
mac/corewlan rewrite library handling in configure 2016-08-18 17:09:52 +00:00
qpa Merge remote-tracking branch 'origin/5.9' into dev 2017-06-07 14:02:43 +02:00
unix QSslSocket: OpenSSL 1.1 backend 2017-07-04 18:03:59 +00:00
win determine compiler version at build time, not in configure 2016-12-23 13:44:50 +00:00
x11 xcb: Add experimental legacy support for native X11 painting 2017-04-21 10:56:02 +00:00
.gitignore Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
.qmake.conf make also configure tests not see %LIB% and %INCLUDE% under mingw 2016-10-17 13:44:43 +00:00