diff options
author | Fedor Indutny <fedor@indutny.com> | 2016-04-26 16:27:08 -0400 |
---|---|---|
committer | Fedor Indutny <fedor@indutny.com> | 2016-04-27 00:41:15 -0400 |
commit | cee4c25c9281d106f80b20ba7854bf9003f9357a (patch) | |
tree | 9beb756c9ae2613dcbb284c8af7d4f603bc16971 /lib/net.js | |
parent | cc5d9767af69c453dbb27d2fa09d8f2e8913774d (diff) | |
download | android-node-v8-cee4c25c9281d106f80b20ba7854bf9003f9357a.tar.gz android-node-v8-cee4c25c9281d106f80b20ba7854bf9003f9357a.tar.bz2 android-node-v8-cee4c25c9281d106f80b20ba7854bf9003f9357a.zip |
net: introduce `Socket#connecting` property
There is no official way to figure out if the socket that you have on
hand is still connecting to the remote host. Introduce
`Socket#connecting`, which is essentially an unprefixed `_connecting`
property that we already had.
PR-URL: https://github.com/nodejs/node/pull/6404
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Diffstat (limited to 'lib/net.js')
-rw-r--r-- | lib/net.js | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/lib/net.js b/lib/net.js index c2b3f5500a..509112f58f 100644 --- a/lib/net.js +++ b/lib/net.js @@ -119,7 +119,7 @@ const BYTES_READ = Symbol('bytesRead'); function Socket(options) { if (!(this instanceof Socket)) return new Socket(options); - this._connecting = false; + this.connecting = false; this._hadError = false; this._handle = null; this._parent = null; @@ -202,7 +202,7 @@ Socket.prototype._unrefTimer = function unrefTimer() { // so that only the writable side will be cleaned up. function onSocketFinish() { // If still connecting - defer handling 'finish' until 'connect' will happen - if (this._connecting) { + if (this.connecting) { debug('osF: not yet connected'); return this.once('connect', onSocketFinish); } @@ -367,9 +367,16 @@ Socket.prototype.address = function() { }; +Object.defineProperty(Socket.prototype, '_connecting', { + get: function() { + return this.connecting; + } +}); + + Object.defineProperty(Socket.prototype, 'readyState', { get: function() { - if (this._connecting) { + if (this.connecting) { return 'opening'; } else if (this.readable && this.writable) { return 'open'; @@ -397,7 +404,7 @@ Object.defineProperty(Socket.prototype, 'bufferSize', { Socket.prototype._read = function(n) { debug('_read'); - if (this._connecting || !this._handle) { + if (this.connecting || !this._handle) { debug('_read wait for connection'); this.once('connect', () => this._read(n)); } else if (!this._handle.reading) { @@ -430,7 +437,7 @@ function maybeDestroy(socket) { if (!socket.readable && !socket.writable && !socket.destroyed && - !socket._connecting && + !socket.connecting && !socket._writableState.length) { socket.destroy(); } @@ -465,7 +472,7 @@ Socket.prototype._destroy = function(exception, cb) { return; } - this._connecting = false; + this.connecting = false; this.readable = this.writable = false; @@ -648,7 +655,7 @@ 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 // waiting for this one to be done. - if (this._connecting) { + if (this.connecting) { this._pendingData = data; this._pendingEncoding = encoding; this.once('connect', function() { @@ -803,7 +810,7 @@ function connect(self, address, port, addressType, localAddress, localPort) { // TODO return promise from Socket.prototype.connect which // wraps _connectReq. - assert.ok(self._connecting); + assert.ok(self.connecting); var err; @@ -913,7 +920,7 @@ Socket.prototype.connect = function(options, cb) { this._unrefTimer(); - this._connecting = true; + this.connecting = true; this.writable = true; if (pipe) { @@ -952,7 +959,7 @@ function lookupAndConnect(self, options) { var addressType = exports.isIP(host); if (addressType) { process.nextTick(function() { - if (self._connecting) + if (self.connecting) connect(self, host, port, addressType, localAddress, localPort); }); return; @@ -980,7 +987,7 @@ function lookupAndConnect(self, options) { // It's possible we were destroyed while looking this up. // XXX it would be great if we could cancel the promise returned by // the look up. - if (!self._connecting) return; + if (!self.connecting) return; if (err) { // net.createConnection() creates a net.Socket object and @@ -1048,8 +1055,8 @@ function afterConnect(status, handle, req, readable, writable) { debug('afterConnect'); - assert.ok(self._connecting); - self._connecting = false; + assert.ok(self.connecting); + self.connecting = false; self._sockname = null; if (status == 0) { @@ -1065,7 +1072,7 @@ function afterConnect(status, handle, req, readable, writable) { self.read(0); } else { - self._connecting = false; + self.connecting = false; var details; if (req.localAddress && req.localPort) { details = req.localAddress + ':' + req.localPort; |