QNetworkAccessManager::connectToHostEncrypted()/connectToHost() creates 'fake' requests with pseudo-schemes 'preconnect-https'/ 'preconnect-http'. QHttp2ProtocolHandler should handle this requests in a special way - reporting them immediately as finished (so that QNAM emits finished as it does in case of HTTP/1.1) and not trying to send anything. We also have to properly cache the connection - 'https' or 'http' scheme is too generic - it allows (unfortunately) mixing H2/HTTP/1.1 in a single connection in case an attribute was missing on a request, which is wrong. h2c is more complicated, since it needs a real request to negotiate the protocol switch to H2, with the current QNetworkHttpConnection(Channel)'s design it's not possible without large changes (aka regressions and new bugs introduced). Auto-test extended. Fixes: QTBUG-77082 Change-Id: I03467673a620c89784c2d36521020dc9d08aced7 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> |
||
|---|---|---|
| .. | ||
| hpack | ||
| hsts | ||
| http2 | ||
| qabstractnetworkcache | ||
| qftp | ||
| qhttpnetworkconnection | ||
| qhttpnetworkreply | ||
| qnetworkaccessmanager | ||
| qnetworkcachemetadata | ||
| qnetworkcookie | ||
| qnetworkcookiejar | ||
| qnetworkdiskcache | ||
| qnetworkreply | ||
| qnetworkrequest | ||
| spdy | ||
| access.pro | ||