diff options
author | Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> | 2016-08-04 14:40:33 +0200 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> | 2016-08-11 15:38:20 +0000 |
commit | 69ff49e8f1885b48e14efdd5e58d3e780c63c727 (patch) | |
tree | 74caf5b83865275fd3ba97b77b7edc933ce54ffe /tests/auto/network/access/http2/http2srv.h | |
parent | 193abdfc0798cf10eac06769b650ac03e86eb55e (diff) |
Enable cleartext HTTP/2 and bring the auto-test back to life
HTTP/2 does not require TLS connection, it can work in a cleartext mode.
Plus at the moment only OpenSSL backend allows HTTP/2 negotiation
via ALPN/NPN (and none of our CI configurations with OpenSSL supports
these extensions, rendering HTTP/2 auto-test useless). This patch
implements cleartext HTTP/2 ('h2c') in 'direct' mode - this is
allowed if a client has a prior knowledge that HTTP/2 is supported by
a server.
Change-Id: I4978775e9732c40bc77f549b83bb4a5d1761887e
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'tests/auto/network/access/http2/http2srv.h')
-rw-r--r-- | tests/auto/network/access/http2/http2srv.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/tests/auto/network/access/http2/http2srv.h b/tests/auto/network/access/http2/http2srv.h index 00cfde944b..8d02ae60ef 100644 --- a/tests/auto/network/access/http2/http2srv.h +++ b/tests/auto/network/access/http2/http2srv.h @@ -33,9 +33,9 @@ #include <QtNetwork/private/http2frames_p.h> #include <QtNetwork/private/hpack_p.h> +#include <QtNetwork/qabstractsocket.h> #include <QtCore/qscopedpointer.h> #include <QtNetwork/qtcpserver.h> -#include <QtNetwork/qsslsocket.h> #include <QtCore/qbytearray.h> #include <QtCore/qglobal.h> @@ -62,7 +62,7 @@ class Http2Server : public QTcpServer { Q_OBJECT public: - Http2Server(const Http2Settings &serverSettings, + Http2Server(bool clearText, const Http2Settings &serverSettings, const Http2Settings &clientSettings); ~Http2Server(); @@ -105,7 +105,7 @@ Q_SIGNALS: void windowUpdate(quint32 streamID); private slots: - void connectionEncrypted(); + void connectionEstablished(); void readReady(); private: @@ -113,7 +113,7 @@ private: quint32 clientSetting(Http2::Settings identifier, quint32 defaultValue); - QScopedPointer<QSslSocket> socket; + QScopedPointer<QAbstractSocket> socket; // Connection preface: bool waitingClientPreface = false; @@ -155,6 +155,7 @@ private: quint32 streamRecvWindowSize = Http2::defaultSessionWindowSize; QByteArray responseBody; + bool clearTextHTTP2 = false; protected slots: void ignoreErrorSlot(); |