diff options
author | Sebastiaan Deckers <sebdeckers83@gmail.com> | 2018-11-27 10:45:51 +0800 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2018-11-29 12:53:57 -0800 |
commit | 5dacbf594ef80f8eadea274f537cc17cc1e5ebe1 (patch) | |
tree | 1b865a406c369498a2f1c4255d8f9edadfb4919a /lib | |
parent | 97fedefc18204e2c028cbca608a383075fcda7c7 (diff) | |
download | android-node-v8-5dacbf594ef80f8eadea274f537cc17cc1e5ebe1.tar.gz android-node-v8-5dacbf594ef80f8eadea274f537cc17cc1e5ebe1.tar.bz2 android-node-v8-5dacbf594ef80f8eadea274f537cc17cc1e5ebe1.zip |
http2: add compat support for nested array headers
writeHead supports an array of arrays containing header name and values.
Compatibility between http2 & http1 even though this is not documented.
Fixes: https://github.com/nodejs/node/issues/24466
PR-URL: https://github.com/nodejs/node/pull/24665
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/internal/http2/compat.js | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/internal/http2/compat.js b/lib/internal/http2/compat.js index 145e774104..464f114106 100644 --- a/lib/internal/http2/compat.js +++ b/lib/internal/http2/compat.js @@ -574,10 +574,16 @@ class Http2ServerResponse extends Stream { if (headers === undefined && typeof statusMessage === 'object') headers = statusMessage; - if (typeof headers === 'object') { + var i; + if (Array.isArray(headers)) { + for (i = 0; i < headers.length; i++) { + const header = headers[i]; + this[kSetHeader](header[0], header[1]); + } + } else if (typeof headers === 'object') { const keys = Object.keys(headers); let key = ''; - for (var i = 0; i < keys.length; i++) { + for (i = 0; i < keys.length; i++) { key = keys[i]; this[kSetHeader](key, headers[key]); } |