tst_http2: use the supportedFeatures() instead of macros
With the recent change, 'system' headers gone: not in the test code anymore, so, for example OPENSSL_VERSION_NUMBER is undefined, making the test to select a wrong code-path - 'h2c', instead of encrypted h2. Pick-to: 6.2 Pick-to: 6.1 Change-Id: I3b201e21fac56875c9045c7463e2ae69af4c6470 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>bb10
parent
d705d7e5d6
commit
13ce568b76
|
|
@ -318,8 +318,12 @@ QList<QSsl::SupportedFeature> QTlsBackendOpenSSL::supportedFeatures() const
|
|||
QList<QSsl::SupportedFeature> features;
|
||||
|
||||
features << QSsl::SupportedFeature::CertificateVerification;
|
||||
|
||||
#if !defined(OPENSSL_NO_TLSEXT)
|
||||
features << QSsl::SupportedFeature::ClientSideAlpn;
|
||||
features << QSsl::SupportedFeature::ServerSideAlpn;
|
||||
#endif // !OPENSSL_NO_TLSEXT
|
||||
|
||||
features << QSsl::SupportedFeature::Ocsp;
|
||||
features << QSsl::SupportedFeature::Psk;
|
||||
features << QSsl::SupportedFeature::SessionTicket;
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtNetwork/qtnetworkglobal.h>
|
||||
|
||||
#include <QTest>
|
||||
#include <QTestEventLoop>
|
||||
#include <QScopeGuard>
|
||||
|
|
@ -40,6 +42,10 @@
|
|||
#include <QtNetwork/qnetworkrequest.h>
|
||||
#include <QtNetwork/qnetworkreply.h>
|
||||
|
||||
#if QT_CONFIG(ssl)
|
||||
#include <QtNetwork/qsslsocket.h>
|
||||
#endif
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
#include <QtCore/qobject.h>
|
||||
#include <QtCore/qthread.h>
|
||||
|
|
@ -51,16 +57,6 @@
|
|||
|
||||
#include <QtTest/private/qemulationdetector_p.h>
|
||||
|
||||
#if (!defined(QT_NO_OPENSSL) && OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_TLSEXT)) \
|
||||
|| QT_CONFIG(schannel)
|
||||
// HTTP/2 over TLS requires ALPN/NPN to negotiate the protocol version.
|
||||
const bool clearTextHTTP2 = false;
|
||||
#else
|
||||
// No ALPN/NPN support to negotiate HTTP/2, we'll use cleartext 'h2c' with
|
||||
// a protocol upgrade procedure.
|
||||
const bool clearTextHTTP2 = true;
|
||||
#endif
|
||||
|
||||
Q_DECLARE_METATYPE(H2Type)
|
||||
Q_DECLARE_METATYPE(QNetworkRequest::Attribute)
|
||||
|
||||
|
|
@ -184,6 +180,8 @@ struct ServerDeleter
|
|||
}
|
||||
};
|
||||
|
||||
bool clearTextHTTP2 = false;
|
||||
|
||||
using ServerPtr = QScopedPointer<Http2Server, ServerDeleter>;
|
||||
|
||||
H2Type defaultConnectionType()
|
||||
|
|
@ -196,6 +194,12 @@ H2Type defaultConnectionType()
|
|||
tst_Http2::tst_Http2()
|
||||
: workerThread(new QThread)
|
||||
{
|
||||
#if QT_CONFIG(ssl)
|
||||
const auto features = QSslSocket::supportedFeatures();
|
||||
clearTextHTTP2 = !features.contains(QSsl::SupportedFeature::ServerSideAlpn);
|
||||
#else
|
||||
clearTextHTTP2 = true;
|
||||
#endif
|
||||
workerThread->start();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue