diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-10-04 20:37:51 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-10-09 23:54:43 +0200 |
commit | 0ff4a558afeb0ec051041e8f1f9c45d876ae0530 (patch) | |
tree | cd3a3aab0fbfc0dc614cb8f4f079567a5e333071 /lib/internal/http2/core.js | |
parent | a04b04f4cf162e32415bc888c0a735db54033beb (diff) | |
download | android-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.js | 6 |
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](); |