summaryrefslogtreecommitdiff
path: root/lib/internal/http2/core.js
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-10-04 20:37:51 +0200
committerAnna Henningsen <anna@addaleax.net>2019-10-09 23:54:43 +0200
commit0ff4a558afeb0ec051041e8f1f9c45d876ae0530 (patch)
treecd3a3aab0fbfc0dc614cb8f4f079567a5e333071 /lib/internal/http2/core.js
parenta04b04f4cf162e32415bc888c0a735db54033beb (diff)
downloadandroid-node-v8-0ff4a558afeb0ec051041e8f1f9c45d876ae0530.tar.gz
android-node-v8-0ff4a558afeb0ec051041e8f1f9c45d876ae0530.tar.bz2
android-node-v8-0ff4a558afeb0ec051041e8f1f9c45d876ae0530.zip
http2: allow passing FileHandle to respondWithFD
This seems to make sense if we want to promote the use of `fs.promises`, although it’s not strictly necessary. PR-URL: https://github.com/nodejs/node/pull/29876 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Minwoo Jung <minwoo@nodesource.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'lib/internal/http2/core.js')
-rw-r--r--lib/internal/http2/core.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js
index d2701dfb84..11d677c5f6 100644
--- a/lib/internal/http2/core.js
+++ b/lib/internal/http2/core.js
@@ -82,6 +82,7 @@ const {
hideStackFrames
} = require('internal/errors');
const { validateNumber, validateString } = require('internal/validators');
+const fsPromisesInternal = require('internal/fs/promises');
const { utcDate } = require('internal/http');
const { onServerStream,
Http2ServerRequest,
@@ -2523,7 +2524,10 @@ class ServerHttp2Stream extends Http2Stream {
this[kState].flags |= STREAM_FLAGS_HAS_TRAILERS;
}
- validateNumber(fd, 'fd');
+ if (fd instanceof fsPromisesInternal.FileHandle)
+ fd = fd.fd;
+ else if (typeof fd !== 'number')
+ throw new ERR_INVALID_ARG_TYPE('fd', ['number', 'FileHandle'], fd);
debugStreamObj(this, 'initiating response from fd');
this[kUpdateTimer]();