H2: emit encrypted for at least the first reply, similar to H1
Pick-to: 6.2 6.1 5.15 Fixes: QTBUG-95277 Change-Id: I1fe01503376c0d6278e366d7bd31b412b7cc3a69 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
parent
f3bccd2f4f
commit
c23b788634
@ -1256,6 +1256,10 @@ void QHttpNetworkConnectionChannel::_q_encrypted()
|
||||
if (connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2 ||
|
||||
connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2Direct) {
|
||||
if (h2RequestsToSend.count() > 0) {
|
||||
// Similar to HTTP/1.1 counterpart below:
|
||||
const auto &h2Pairs = h2RequestsToSend.values(); // (request, reply)
|
||||
const auto &pair = h2Pairs.first();
|
||||
emit pair.second->encrypted();
|
||||
// In case our peer has sent us its settings (window size, max concurrent streams etc.)
|
||||
// let's give _q_receiveReply a chance to read them first ('invokeMethod', QueuedConnection).
|
||||
QMetaObject::invokeMethod(connection, "_q_startNextRequest", Qt::QueuedConnection);
|
||||
|
@ -276,6 +276,10 @@ void tst_Http2::singleRequest()
|
||||
request.setAttribute(h2Attribute, QVariant(true));
|
||||
|
||||
auto reply = manager->get(request);
|
||||
#if QT_CONFIG(ssl)
|
||||
QSignalSpy encSpy(reply, &QNetworkReply::encrypted);
|
||||
#endif // QT_CONFIG(ssl)
|
||||
|
||||
connect(reply, &QNetworkReply::finished, this, &tst_Http2::replyFinished);
|
||||
// Since we're using self-signed certificates,
|
||||
// ignore SSL errors:
|
||||
@ -290,6 +294,11 @@ void tst_Http2::singleRequest()
|
||||
|
||||
QCOMPARE(reply->error(), QNetworkReply::NoError);
|
||||
QVERIFY(reply->isFinished());
|
||||
|
||||
#if QT_CONFIG(ssl)
|
||||
if (connectionType == H2Type::h2Alpn || connectionType == H2Type::h2Direct)
|
||||
QCOMPARE(encSpy.count(), 1);
|
||||
#endif // QT_CONFIG(ssl)
|
||||
}
|
||||
|
||||
void tst_Http2::multipleRequests()
|
||||
|
Loading…
Reference in New Issue
Block a user