diff options
authorTimur Pocheptsov <>2019-08-05 13:11:22 +0200
committerTimur Pocheptsov <>2019-08-14 00:01:22 +0200
commit63abcfcade946e64ea1c1213259cab8e2ad2df81 (patch)
parent0b984e141bff9ae760efa0e81a9f106093552538 (diff)
Make our connection-level window half of a possible maximum
Some servers seem to be unable to properly calculate our window size from a delta we send via WINDOW_UPDATE frame immediately after our client preface and the SETTINGS frame. The remote replies with a GOAWAY frame blaming flow control error. Guessing what's this magic number they use seems to be not feasible, we now use a half of what we had before. Fixes: QTBUG-77308 Change-Id: I41dacfd25a395a27003f330d01b6d8d60b8f407c Reviewed-by: Edward Welbourne <> Reviewed-by: Volker Hilsheimer <>
1 files changed, 4 insertions, 2 deletions
diff --git a/src/network/access/http2/http2protocol_p.h b/src/network/access/http2/http2protocol_p.h
index f7a89859d3..7142d6f1fa 100644
--- a/src/network/access/http2/http2protocol_p.h
+++ b/src/network/access/http2/http2protocol_p.h
@@ -168,8 +168,10 @@ struct Q_AUTOTEST_EXPORT ProtocolParameters
bool indexStrings = true;
// This parameter is not negotiated via SETTINGS frames, so we have it
- // as a member and will convey it to our peer as a WINDOW_UPDATE frame:
- qint32 maxSessionReceiveWindowSize = Http2::maxSessionReceiveWindowSize;
+ // as a member and will convey it to our peer as a WINDOW_UPDATE frame.
+ // Note, some servers do not accept our WINDOW_UPDATE from the default
+ // 64 KB to the possible maximum. Let's use a half of it:
+ qint32 maxSessionReceiveWindowSize = Http2::maxSessionReceiveWindowSize / 2;
// This is our default SETTINGS frame: