forked from pool/libqt5-qtbase
Accepting request 983989 from home:Vogtinator:qt5.15
- Add patch to fix some HTTP/2 communication (boo#1200715, kde#455540): * 0001-H2-remove-a-rather-useless-limit-on-the-number-of-st.patch OBS-URL: https://build.opensuse.org/request/show/983989 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtbase?expand=0&rev=37
This commit is contained in:
parent
0141bdac91
commit
5cb9ee7688
@ -0,0 +1,75 @@
|
|||||||
|
From ec68c541a72bde122a1ab5ba89f41b58c370537f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
||||||
|
Date: Mon, 14 Jun 2021 14:38:27 +0200
|
||||||
|
Subject: [PATCH] H2: remove a rather useless limit on the number of streams
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
SETTINGS for max concurrect number of streams is 'one direction' - this
|
||||||
|
is how our peer conveys the possible number of streams _we_ can open,
|
||||||
|
not _them_. If they choose to have it unlimited - let it be so.
|
||||||
|
|
||||||
|
It's possible to send 0 as maximum number, also, it's possible to
|
||||||
|
reduce the maximum compared to initial at some point - then I have
|
||||||
|
to avoid integer overflows.
|
||||||
|
|
||||||
|
Pick-to: 6.2
|
||||||
|
Pick-to: 6.1
|
||||||
|
Pick-to: 5.15
|
||||||
|
Fixes: QTBUG-94470
|
||||||
|
Change-Id: Ia02247acbaedd70998a4cab02082ba10f45cf78c
|
||||||
|
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
||||||
|
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
|
||||||
|
(cherry picked from commit 46940ca73791e87e2366b80ac2884b3bcce716ce)
|
||||||
|
---
|
||||||
|
src/network/access/http2/http2protocol_p.h | 3 ---
|
||||||
|
src/network/access/qhttp2protocolhandler.cpp | 10 +++-------
|
||||||
|
2 files changed, 3 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/network/access/http2/http2protocol_p.h b/src/network/access/http2/http2protocol_p.h
|
||||||
|
index b0af5aa919..ed5f2bf561 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 f513139304..21f1c91e29 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) {
|
||||||
|
--
|
||||||
|
2.36.1
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 20 12:59:16 UTC 2022 - Fabian Vogt <fvogt@suse.com>
|
||||||
|
|
||||||
|
- Add patch to fix some HTTP/2 communication (boo#1200715, kde#455540):
|
||||||
|
* 0001-H2-remove-a-rather-useless-limit-on-the-number-of-st.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Apr 8 14:06:22 UTC 2022 - Martin Liška <mliska@suse.cz>
|
Fri Apr 8 14:06:22 UTC 2022 - Martin Liška <mliska@suse.cz>
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ Source2: macros.qt5
|
|||||||
Source3: baselibs.conf
|
Source3: baselibs.conf
|
||||||
Source4: qtlogging.ini
|
Source4: qtlogging.ini
|
||||||
Source99: libqt5-qtbase-rpmlintrc
|
Source99: libqt5-qtbase-rpmlintrc
|
||||||
# patches 0-1000 are openSUSE and/or non-upstream(able) patches #
|
# patches 0-999 are openSUSE and/or non-upstream(able) patches #
|
||||||
Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch
|
Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch
|
||||||
# Proposed: https://bugreports.qt.io/browse/QTBUG-88491
|
# Proposed: https://bugreports.qt.io/browse/QTBUG-88491
|
||||||
Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch
|
Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch
|
||||||
@ -64,6 +64,7 @@ Patch24: fix-fixqt4headers.patch
|
|||||||
# PATCH-FIX-OPENSUSE -- Mitigate -D_FORTIFY_SOURCE=3 issue starting with GCC 12 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105078)
|
# PATCH-FIX-OPENSUSE -- Mitigate -D_FORTIFY_SOURCE=3 issue starting with GCC 12 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105078)
|
||||||
Patch25: mitigate-FORTIFY_SOURCE-3.patch
|
Patch25: mitigate-FORTIFY_SOURCE-3.patch
|
||||||
# patches 1000-2000 and above from upstream 5.15 branch #
|
# patches 1000-2000 and above from upstream 5.15 branch #
|
||||||
|
Patch1000: 0001-H2-remove-a-rather-useless-limit-on-the-number-of-st.patch
|
||||||
# patches 2000-3000 and above from upstream qt6/dev branch #
|
# patches 2000-3000 and above from upstream qt6/dev branch #
|
||||||
# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384
|
# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384
|
||||||
Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
|
Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user