mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 21:58:48 +02:00
http2: fix several serious bugs
Currently http2 does not properly submit GOAWAY frames when a session is being destroyed. It also doesn't properly handle when the other party severs the connection after sending a GOAWAY frame, even though it should. Edge, IE & Safari are currently unable to handle empty TRAILERS frames despite them being correctly to spec. Instead send an empty DATA frame with END_STREAM flag in those situations. Fix and adjust several flaky and/or incorrect tests. PR-URL: https://github.com/nodejs/node/pull/20772 Fixes: https://github.com/nodejs/node/issues/20705 Fixes: https://github.com/nodejs/node/issues/20750 Fixes: https://github.com/nodejs/node/issues/20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
4f0ab76b6c
commit
b11e19e8ee
15 changed files with 145 additions and 122 deletions
|
@ -55,13 +55,7 @@ server.listen(
|
|||
0,
|
||||
common.mustCall(() => {
|
||||
const client = http2.connect(`http://localhost:${server.address().port}`);
|
||||
// On certain operating systems, an ECONNRESET may occur. We do not need
|
||||
// to test for it here. Do not make this a mustCall
|
||||
client.on('error', () => {});
|
||||
const req = client.request();
|
||||
// On certain operating systems, an ECONNRESET may occur. We do not need
|
||||
// to test for it here. Do not make this a mustCall
|
||||
req.on('error', () => {});
|
||||
req.resume();
|
||||
req.on('close', common.mustCall(() => {
|
||||
client.close();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue