src: use consistent names for JSStream
Its confusing to call a js class with a handle a "Wrap", usually it's the C++ handle that is called a Wrap (tcp_wrap, tls_wrap, ...). Its derived from Socket, and makes a JS stream look like a Socket, so call it that. Also, remove use of lib/_stream_wrap.js so it can be deprecated some time. PR-URL: https://github.com/nodejs/node/pull/25153 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
This commit is contained in:
parent
03e23a3d10
commit
00944c7cc2
@ -1,3 +1,3 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
module.exports = require('internal/wrap_js_stream');
|
module.exports = require('internal/js_stream_socket');
|
||||||
|
@ -29,7 +29,7 @@ const net = require('net');
|
|||||||
const tls = require('tls');
|
const tls = require('tls');
|
||||||
const util = require('util');
|
const util = require('util');
|
||||||
const common = require('_tls_common');
|
const common = require('_tls_common');
|
||||||
const { StreamWrap } = require('_stream_wrap');
|
const JSStreamSocket = require('internal/js_stream_socket');
|
||||||
const { Buffer } = require('buffer');
|
const { Buffer } = require('buffer');
|
||||||
const debug = util.debuglog('tls');
|
const debug = util.debuglog('tls');
|
||||||
const { TCP, constants: TCPConstants } = internalBinding('tcp_wrap');
|
const { TCP, constants: TCPConstants } = internalBinding('tcp_wrap');
|
||||||
@ -310,12 +310,14 @@ function TLSSocket(socket, opts) {
|
|||||||
this.authorizationError = null;
|
this.authorizationError = null;
|
||||||
this[kRes] = null;
|
this[kRes] = null;
|
||||||
|
|
||||||
// Wrap plain JS Stream into StreamWrap
|
|
||||||
var wrap;
|
var wrap;
|
||||||
if ((socket instanceof net.Socket && socket._handle) || !socket) {
|
if ((socket instanceof net.Socket && socket._handle) || !socket) {
|
||||||
wrap = socket;
|
wrap = socket;
|
||||||
} else {
|
} else {
|
||||||
wrap = new StreamWrap(socket);
|
// TLS expects to interact from C++ with a net.Socket that has a C++ stream
|
||||||
|
// handle, but a JS stream doesn't have one. Wrap it up to make it look like
|
||||||
|
// a socket.
|
||||||
|
wrap = new JSStreamSocket(socket);
|
||||||
wrap.once('close', () => this.destroy());
|
wrap.once('close', () => this.destroy());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ const util = require('util');
|
|||||||
|
|
||||||
const { kIncomingMessage } = require('_http_common');
|
const { kIncomingMessage } = require('_http_common');
|
||||||
const { kServerResponse } = require('_http_server');
|
const { kServerResponse } = require('_http_server');
|
||||||
const { StreamWrap } = require('_stream_wrap');
|
const JSStreamSocket = require('internal/js_stream_socket');
|
||||||
|
|
||||||
const {
|
const {
|
||||||
defaultTriggerAsyncIdScope,
|
defaultTriggerAsyncIdScope,
|
||||||
@ -935,7 +935,7 @@ class Http2Session extends EventEmitter {
|
|||||||
super();
|
super();
|
||||||
|
|
||||||
if (!socket._handle || !socket._handle._externalStream) {
|
if (!socket._handle || !socket._handle._externalStream) {
|
||||||
socket = new StreamWrap(socket);
|
socket = new JSStreamSocket(socket);
|
||||||
}
|
}
|
||||||
|
|
||||||
// No validation is performed on the input parameters because this
|
// No validation is performed on the input parameters because this
|
||||||
|
@ -5,7 +5,7 @@ const util = require('util');
|
|||||||
const { Socket } = require('net');
|
const { Socket } = require('net');
|
||||||
const { JSStream } = internalBinding('js_stream');
|
const { JSStream } = internalBinding('js_stream');
|
||||||
const uv = internalBinding('uv');
|
const uv = internalBinding('uv');
|
||||||
const debug = util.debuglog('stream_wrap');
|
const debug = util.debuglog('stream_socket');
|
||||||
const { owner_symbol } = require('internal/async_hooks').symbols;
|
const { owner_symbol } = require('internal/async_hooks').symbols;
|
||||||
const { ERR_STREAM_WRAP } = require('internal/errors').codes;
|
const { ERR_STREAM_WRAP } = require('internal/errors').codes;
|
||||||
|
|
||||||
@ -29,9 +29,9 @@ function onwrite(req, bufs) { return this[owner_symbol].doWrite(req, bufs); }
|
|||||||
* can skip going through the JS layer and let TLS access the raw C++ handle
|
* can skip going through the JS layer and let TLS access the raw C++ handle
|
||||||
* of a net.Socket. The flipside of this is that, to maintain composability,
|
* of a net.Socket. The flipside of this is that, to maintain composability,
|
||||||
* we need a way to create "fake" net.Socket instances that call back into a
|
* we need a way to create "fake" net.Socket instances that call back into a
|
||||||
* "real" JavaScript stream. JSStreamWrap is exactly this.
|
* "real" JavaScript stream. JSStreamSocket is exactly this.
|
||||||
*/
|
*/
|
||||||
class JSStreamWrap extends Socket {
|
class JSStreamSocket extends Socket {
|
||||||
constructor(stream) {
|
constructor(stream) {
|
||||||
const handle = new JSStream();
|
const handle = new JSStream();
|
||||||
handle.close = (cb) => {
|
handle.close = (cb) => {
|
||||||
@ -39,7 +39,7 @@ class JSStreamWrap extends Socket {
|
|||||||
this.doClose(cb);
|
this.doClose(cb);
|
||||||
};
|
};
|
||||||
// Inside of the following functions, `this` refers to the handle
|
// Inside of the following functions, `this` refers to the handle
|
||||||
// and `this[owner_symbol]` refers to this JSStreamWrap instance.
|
// and `this[owner_symbol]` refers to this JSStreamSocket instance.
|
||||||
handle.isClosing = isClosing;
|
handle.isClosing = isClosing;
|
||||||
handle.onreadstart = onreadstart;
|
handle.onreadstart = onreadstart;
|
||||||
handle.onreadstop = onreadstop;
|
handle.onreadstop = onreadstop;
|
||||||
@ -88,9 +88,10 @@ class JSStreamWrap extends Socket {
|
|||||||
this.read(0);
|
this.read(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Legacy
|
// Allow legacy requires in the test suite to keep working:
|
||||||
|
// const { StreamWrap } = require('internal/js_stream_socket')
|
||||||
static get StreamWrap() {
|
static get StreamWrap() {
|
||||||
return JSStreamWrap;
|
return JSStreamSocket;
|
||||||
}
|
}
|
||||||
|
|
||||||
isClosing() {
|
isClosing() {
|
||||||
@ -223,4 +224,4 @@ class JSStreamWrap extends Socket {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = JSStreamWrap;
|
module.exports = JSStreamSocket;
|
2
node.gyp
2
node.gyp
@ -126,6 +126,7 @@
|
|||||||
'lib/internal/fs/watchers.js',
|
'lib/internal/fs/watchers.js',
|
||||||
'lib/internal/http.js',
|
'lib/internal/http.js',
|
||||||
'lib/internal/inspector_async_hook.js',
|
'lib/internal/inspector_async_hook.js',
|
||||||
|
'lib/internal/js_stream_socket.js',
|
||||||
'lib/internal/linkedlist.js',
|
'lib/internal/linkedlist.js',
|
||||||
'lib/internal/modules/cjs/helpers.js',
|
'lib/internal/modules/cjs/helpers.js',
|
||||||
'lib/internal/modules/cjs/loader.js',
|
'lib/internal/modules/cjs/loader.js',
|
||||||
@ -188,7 +189,6 @@
|
|||||||
'lib/internal/streams/state.js',
|
'lib/internal/streams/state.js',
|
||||||
'lib/internal/streams/pipeline.js',
|
'lib/internal/streams/pipeline.js',
|
||||||
'lib/internal/streams/end-of-stream.js',
|
'lib/internal/streams/end-of-stream.js',
|
||||||
'lib/internal/wrap_js_stream.js',
|
|
||||||
'deps/v8/tools/splaytree.js',
|
'deps/v8/tools/splaytree.js',
|
||||||
'deps/v8/tools/codemap.js',
|
'deps/v8/tools/codemap.js',
|
||||||
'deps/v8/tools/consarray.js',
|
'deps/v8/tools/consarray.js',
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
const common = require('../common');
|
const common = require('../common');
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
const { StreamWrap } = require('_stream_wrap');
|
const { StreamWrap } = require('internal/js_stream_socket');
|
||||||
const { Duplex } = require('stream');
|
const { Duplex } = require('stream');
|
||||||
const { internalBinding } = require('internal/test/binding');
|
const { internalBinding } = require('internal/test/binding');
|
||||||
const { ShutdownWrap } = internalBinding('stream_wrap');
|
const { ShutdownWrap } = internalBinding('stream_wrap');
|
||||||
|
|
||||||
// This test makes sure that when an instance of JSStreamWrap is waiting for
|
// This test makes sure that when a wrapped stream is waiting for
|
||||||
// a "drain" event to `doShutdown`, the instance will work correctly when a
|
// a "drain" event to `doShutdown`, the instance will work correctly when a
|
||||||
// "drain" event emitted.
|
// "drain" event emitted.
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
// Flags: --expose-internals
|
||||||
'use strict';
|
'use strict';
|
||||||
const common = require('../common');
|
const common = require('../common');
|
||||||
|
|
||||||
const StreamWrap = require('_stream_wrap');
|
const StreamWrap = require('internal/js_stream_socket');
|
||||||
const Duplex = require('stream').Duplex;
|
const Duplex = require('stream').Duplex;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -4,7 +4,7 @@ const common = require('../common');
|
|||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
|
|
||||||
const { internalBinding } = require('internal/test/binding');
|
const { internalBinding } = require('internal/test/binding');
|
||||||
const StreamWrap = require('_stream_wrap');
|
const StreamWrap = require('internal/js_stream_socket');
|
||||||
const { Duplex } = require('stream');
|
const { Duplex } = require('stream');
|
||||||
const { ShutdownWrap } = internalBinding('stream_wrap');
|
const { ShutdownWrap } = internalBinding('stream_wrap');
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
// Flags: --expose-internals
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const common = require('../common');
|
const common = require('../common');
|
||||||
const StreamWrap = require('_stream_wrap');
|
const StreamWrap = require('internal/js_stream_socket');
|
||||||
const net = require('net');
|
const net = require('net');
|
||||||
|
|
||||||
// This test ensures that when we directly call `socket.destroy()` without
|
// This test ensures that when we directly call `socket.destroy()` without
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
// Flags: --expose-internals
|
||||||
'use strict';
|
'use strict';
|
||||||
const common = require('../common');
|
const common = require('../common');
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
const StreamWrap = require('_stream_wrap');
|
const StreamWrap = require('internal/js_stream_socket');
|
||||||
const { PassThrough } = require('stream');
|
const { PassThrough } = require('stream');
|
||||||
const { Socket } = require('net');
|
const { Socket } = require('net');
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
const common = require('../common');
|
const common = require('../common');
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
const JSStreamWrap = require('internal/wrap_js_stream');
|
const JSStreamWrap = require('internal/js_stream_socket');
|
||||||
const { Duplex } = require('stream');
|
const { Duplex } = require('stream');
|
||||||
|
|
||||||
process.once('uncaughtException', common.mustCall((err) => {
|
process.once('uncaughtException', common.mustCall((err) => {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
require('../common');
|
require('../common');
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
const WrapStream = require('internal/wrap_js_stream');
|
const WrapStream = require('internal/js_stream_socket');
|
||||||
const Stream = require('stream');
|
const Stream = require('stream');
|
||||||
|
|
||||||
class FakeStream extends Stream {
|
class FakeStream extends Stream {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user