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 <edward.welbourne@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Timur Pocheptsov 2019-08-05 13:11:22 +02:00
parent 0b984e141b
commit 63abcfcade

View File

@ -168,8 +168,10 @@ struct Q_AUTOTEST_EXPORT ProtocolParameters
bool indexStrings = true; bool indexStrings = true;
// This parameter is not negotiated via SETTINGS frames, so we have it // 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: // as a member and will convey it to our peer as a WINDOW_UPDATE frame.
qint32 maxSessionReceiveWindowSize = Http2::maxSessionReceiveWindowSize; // 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: // This is our default SETTINGS frame:
// //