diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-03-07 12:22:36 +0100 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2019-03-10 00:46:54 +0100 |
commit | e7f58868b5ea1312f7bac4f152f4d928b64e0202 (patch) | |
tree | e06a734c0302b86fca764a34f9325b8032261d5d /lib | |
parent | 3414bc7b25a00556af80c6ba946e28464e7e8d36 (diff) | |
download | android-node-v8-e7f58868b5ea1312f7bac4f152f4d928b64e0202.tar.gz android-node-v8-e7f58868b5ea1312f7bac4f152f4d928b64e0202.tar.bz2 android-node-v8-e7f58868b5ea1312f7bac4f152f4d928b64e0202.zip |
net: use kHandle symbol for accessing native handle
Use a common `kHandle` for all `StreamBase`-based streams.
PR-URL: https://github.com/nodejs/node/pull/26491
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/internal/http2/core.js | 10 | ||||
-rw-r--r-- | lib/internal/stream_base_commons.js | 12 | ||||
-rw-r--r-- | lib/net.js | 15 |
3 files changed, 23 insertions, 14 deletions
diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index 68c1b29e6d..dd287ed5eb 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -106,13 +106,13 @@ const { updateSettingsBuffer } = require('internal/http2/util'); const { - createWriteWrap, writeGeneric, writevGeneric, onStreamRead, kAfterAsyncWrite, kMaybeDestroy, kUpdateTimer, + kHandle, kSession, setStreamTimeout } = require('internal/stream_base_commons'); @@ -149,7 +149,6 @@ const TLSServer = tls.Server; const kAlpnProtocol = Symbol('alpnProtocol'); const kAuthority = Symbol('authority'); const kEncrypted = Symbol('encrypted'); -const kHandle = Symbol('handle'); const kID = Symbol('id'); const kInit = Symbol('init'); const kInfoHeaders = Symbol('sent-info-headers'); @@ -1795,13 +1794,12 @@ class Http2Stream extends Duplex { if (!this.headersSent) this[kProceed](); - const req = createWriteWrap(this[kHandle]); - req.stream = this[kID]; + let req; if (writev) - writevGeneric(this, req, data, cb); + req = writevGeneric(this, data, cb); else - writeGeneric(this, req, data, encoding, cb); + req = writeGeneric(this, data, encoding, cb); trackWriteState(this, req.bytes); } diff --git a/lib/internal/stream_base_commons.js b/lib/internal/stream_base_commons.js index 64ea864e29..7b5798e82a 100644 --- a/lib/internal/stream_base_commons.js +++ b/lib/internal/stream_base_commons.js @@ -27,7 +27,8 @@ const { const kMaybeDestroy = Symbol('kMaybeDestroy'); const kUpdateTimer = Symbol('kUpdateTimer'); const kAfterAsyncWrite = Symbol('kAfterAsyncWrite'); -const kSession = Symbol('session'); +const kHandle = Symbol('kHandle'); +const kSession = Symbol('kSession'); function handleWriteReq(req, data, encoding) { const { handle } = req; @@ -98,7 +99,8 @@ function createWriteWrap(handle) { return req; } -function writevGeneric(self, req, data, cb) { +function writevGeneric(self, data, cb) { + const req = createWriteWrap(self[kHandle]); var allBuffers = data.allBuffers; var chunks; var i; @@ -120,12 +122,15 @@ function writevGeneric(self, req, data, cb) { if (err === 0) req._chunks = chunks; afterWriteDispatched(self, req, err, cb); + return req; } -function writeGeneric(self, req, data, encoding, cb) { +function writeGeneric(self, data, encoding, cb) { + const req = createWriteWrap(self[kHandle]); var err = handleWriteReq(req, data, encoding); afterWriteDispatched(self, req, err, cb); + return req; } function afterWriteDispatched(self, req, err, cb) { @@ -229,6 +234,7 @@ module.exports = { kAfterAsyncWrite, kMaybeDestroy, kUpdateTimer, + kHandle, kSession, setStreamTimeout }; diff --git a/lib/net.js b/lib/net.js index 2cb03b927f..8d69cbaf81 100644 --- a/lib/net.js +++ b/lib/net.js @@ -58,11 +58,11 @@ const { symbols: { async_id_symbol, owner_symbol } } = require('internal/async_hooks'); const { - createWriteWrap, writevGeneric, writeGeneric, onStreamRead, kAfterAsyncWrite, + kHandle, kUpdateTimer, setStreamTimeout } = require('internal/stream_base_commons'); @@ -233,7 +233,7 @@ function Socket(options) { // probably be supplied by async_hooks. this[async_id_symbol] = -1; this._hadError = false; - this._handle = null; + this[kHandle] = null; this._parent = null; this._host = null; this[kLastWriteQueueSize] = 0; @@ -689,11 +689,11 @@ Socket.prototype._writeGeneric = function(writev, data, encoding, cb) { this._unrefTimer(); - var req = createWriteWrap(this._handle); + let req; if (writev) - writevGeneric(this, req, data, cb); + req = writevGeneric(this, data, cb); else - writeGeneric(this, req, data, encoding, cb); + req = writeGeneric(this, data, encoding, cb); if (req.async) this[kLastWriteQueueSize] = req.bytes; }; @@ -1584,6 +1584,11 @@ Object.defineProperty(TCP.prototype, 'owner', { set(v) { return this[owner_symbol] = v; } }); +Object.defineProperty(Socket.prototype, '_handle', { + get() { return this[kHandle]; }, + set(v) { return this[kHandle] = v; } +}); + Server.prototype.listenFD = internalUtil.deprecate(function(fd, type) { return this.listen({ fd: fd }); |