summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/internal/http2/core.js1
-rw-r--r--test/parallel/test-http2-session-settings.js15
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js
index 4ec3608d49..c1de71c955 100644
--- a/lib/internal/http2/core.js
+++ b/lib/internal/http2/core.js
@@ -510,6 +510,7 @@ function onSettings() {
return;
session[kUpdateTimer]();
debugSessionObj(session, 'new settings received');
+ session[kRemoteSettings] = undefined;
session.emit('remoteSettings', session.remoteSettings);
}
diff --git a/test/parallel/test-http2-session-settings.js b/test/parallel/test-http2-session-settings.js
index 46ba1753e2..35581d5f71 100644
--- a/test/parallel/test-http2-session-settings.js
+++ b/test/parallel/test-http2-session-settings.js
@@ -38,6 +38,12 @@ server.on(
})
);
+server.on('session', (session) => {
+ session.settings({
+ maxConcurrentStreams: 2
+ });
+});
+
server.listen(
0,
common.mustCall(() => {
@@ -57,11 +63,18 @@ server.listen(
assert.strictEqual(settings.maxFrameSize, 16384);
}, 2)
);
+
+ let calledOnce = false;
client.on(
'remoteSettings',
common.mustCall((settings) => {
assert(settings);
- })
+ assert.strictEqual(
+ settings.maxConcurrentStreams,
+ calledOnce ? 2 : (2 ** 32) - 1
+ );
+ calledOnce = true;
+ }, 2)
);
const headers = { ':path': '/' };