summaryrefslogtreecommitdiff
path: root/lib/net.js
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2018-11-03 19:00:41 +0100
committerDaniel Bevenius <daniel.bevenius@gmail.com>2018-11-21 09:53:49 +0100
commit8dd8b8fad9689f31673866f1b77c50098dd2c855 (patch)
tree082d4b2facd0c1d71cfcaf9ca20e45b171c3d9e4 /lib/net.js
parent4eb99089d5bf60824127a4fad17fb26242b9e254 (diff)
downloadandroid-node-v8-8dd8b8fad9689f31673866f1b77c50098dd2c855.tar.gz
android-node-v8-8dd8b8fad9689f31673866f1b77c50098dd2c855.tar.bz2
android-node-v8-8dd8b8fad9689f31673866f1b77c50098dd2c855.zip
net,http2: merge after-write code
PR-URL: https://github.com/nodejs/node/pull/24380 Refs: https://github.com/nodejs/node/issues/19060 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Diffstat (limited to 'lib/net.js')
-rw-r--r--lib/net.js40
1 files changed, 6 insertions, 34 deletions
diff --git a/lib/net.js b/lib/net.js
index 08d08888de..01cfed98e8 100644
--- a/lib/net.js
+++ b/lib/net.js
@@ -62,6 +62,7 @@ const {
writevGeneric,
writeGeneric,
onStreamRead,
+ kAfterAsyncWrite,
kUpdateTimer
} = require('internal/stream_base_commons');
const {
@@ -685,6 +686,10 @@ protoGetter('localPort', function localPort() {
});
+Socket.prototype[kAfterAsyncWrite] = function() {
+ this[kLastWriteQueueSize] = 0;
+};
+
Socket.prototype._writeGeneric = function(writev, data, encoding, cb) {
// If we are still connecting, then buffer this for later.
// The Writable logic will buffer up any more writes while
@@ -707,7 +712,7 @@ Socket.prototype._writeGeneric = function(writev, data, encoding, cb) {
this._unrefTimer();
- var req = createWriteWrap(this._handle, afterWrite);
+ var req = createWriteWrap(this._handle);
if (writev)
writevGeneric(this, req, data, cb);
else
@@ -771,39 +776,6 @@ protoGetter('bytesWritten', function bytesWritten() {
});
-function afterWrite(status, handle, err) {
- var self = handle[owner_symbol];
- if (self !== process.stderr && self !== process.stdout)
- debug('afterWrite', status);
-
- if (this.async)
- self[kLastWriteQueueSize] = 0;
-
- // callback may come after call to destroy.
- if (self.destroyed) {
- debug('afterWrite destroyed');
- if (this.callback)
- this.callback(null);
- return;
- }
-
- if (status < 0) {
- var ex = errnoException(status, 'write', this.error);
- debug('write failure', ex);
- self.destroy(ex, this.callback);
- return;
- }
-
- self._unrefTimer();
-
- if (self !== process.stderr && self !== process.stdout)
- debug('afterWrite call cb');
-
- if (this.callback)
- this.callback.call(undefined);
-}
-
-
function checkBindError(err, port, handle) {
// EADDRINUSE may not be reported until we call listen() or connect().
// To complicate matters, a failed bind() followed by listen() or connect()