Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorOneNail <onenail@yeah.net>2022-05-02 20:48:13 +0300
committerGitHub <noreply@github.com>2022-05-02 20:48:13 +0300
commit916a13a8a36debd9c9ce393bf1edd543ee75d449 (patch)
tree23841cac9d8b44f0e48d34e3b39295068384b680 /lib
parentacffd3d9e657c7013f32665a118772dc1576dfab (diff)
http2: compat support for array headers
PR-URL: https://github.com/nodejs/node/pull/42901 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Paolo Insogna <paolo@cowtech.it> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ricky Zhou <0x19951125@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/internal/http2/compat.js16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/internal/http2/compat.js b/lib/internal/http2/compat.js
index 596167990cd..0bda29233d5 100644
--- a/lib/internal/http2/compat.js
+++ b/lib/internal/http2/compat.js
@@ -682,9 +682,19 @@ class Http2ServerResponse extends Stream {
let i;
if (ArrayIsArray(headers)) {
- for (i = 0; i < headers.length; i++) {
- const header = headers[i];
- this[kSetHeader](header[0], header[1]);
+ if (headers.length && ArrayIsArray(headers[0])) {
+ for (i = 0; i < headers.length; i++) {
+ const header = headers[i];
+ this[kSetHeader](header[0], header[1]);
+ }
+ } else {
+ if (headers.length % 2 !== 0) {
+ throw new ERR_INVALID_ARG_VALUE('headers', headers);
+ }
+
+ for (i = 0; i < headers.length; i += 2) {
+ this[kSetHeader](headers[i], headers[i + 1]);
+ }
}
} else if (typeof headers === 'object') {
const keys = ObjectKeys(headers);