44 lines
2.1 KiB
Diff
44 lines
2.1 KiB
Diff
diff --git a/src/network/access/http2/http2protocol_p.h b/src/network/access/http2/http2protocol_p.h
|
|
index b0af5aa91921bf5229e2d54284687bafb1969eb1..ed5f2bf561f2bd62c6ef7fd1fde29e867d374603 100644
|
|
--- a/src/network/access/http2/http2protocol_p.h
|
|
+++ b/src/network/access/http2/http2protocol_p.h
|
|
@@ -133,9 +133,6 @@ enum Http2PredefinedParameters
|
|
maxPayloadSize = (1 << 24) - 1, // HTTP/2 6.5.2
|
|
|
|
defaultSessionWindowSize = 65535, // HTTP/2 6.5.2
|
|
- // Using 1000 (rather arbitrarily), just to
|
|
- // impose *some* upper limit:
|
|
- maxPeerConcurrentStreams = 1000,
|
|
maxConcurrentStreams = 100 // HTTP/2, 6.5.2
|
|
};
|
|
|
|
diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp
|
|
index f513139304bba375ea3c345c74f2c889b5a13938..21f1c91e29513acff83c45b6717cd5aa25609d62 100644
|
|
--- a/src/network/access/qhttp2protocolhandler.cpp
|
|
+++ b/src/network/access/qhttp2protocolhandler.cpp
|
|
@@ -393,7 +393,8 @@ bool QHttp2ProtocolHandler::sendRequest()
|
|
initReplyFromPushPromise(message, key);
|
|
}
|
|
|
|
- const auto streamsToUse = std::min<quint32>(maxConcurrentStreams - activeStreams.size(),
|
|
+ const auto streamsToUse = std::min<quint32>(maxConcurrentStreams > activeStreams.size()
|
|
+ ? maxConcurrentStreams - activeStreams.size() : 0,
|
|
requests.size());
|
|
auto it = requests.begin();
|
|
for (quint32 i = 0; i < streamsToUse; ++i) {
|
|
@@ -1084,13 +1085,8 @@ bool QHttp2ProtocolHandler::acceptSetting(Http2::Settings identifier, quint32 ne
|
|
QMetaObject::invokeMethod(this, "resumeSuspendedStreams", Qt::QueuedConnection);
|
|
}
|
|
|
|
- if (identifier == Settings::MAX_CONCURRENT_STREAMS_ID) {
|
|
- if (newValue > maxPeerConcurrentStreams) {
|
|
- connectionError(PROTOCOL_ERROR, "SETTINGS invalid number of concurrent streams");
|
|
- return false;
|
|
- }
|
|
+ if (identifier == Settings::MAX_CONCURRENT_STREAMS_ID)
|
|
maxConcurrentStreams = newValue;
|
|
- }
|
|
|
|
if (identifier == Settings::MAX_FRAME_SIZE_ID) {
|
|
if (newValue < Http2::minPayloadLimit || newValue > Http2::maxPayloadSize) {
|