diff --git a/lib/net.js b/lib/net.js index b149878f6574dc..667fbc60c2d171 100644 --- a/lib/net.js +++ b/lib/net.js @@ -674,14 +674,12 @@ Socket.prototype._destroy = function(exception, cb) { }; Socket.prototype._getpeername = function() { - if (!this._peername) { - if (!this._handle || !this._handle.getpeername) { - return {}; - } - const out = {}; - const err = this._handle.getpeername(out); - if (err) return {}; // FIXME(bnoordhuis) Throw? - this._peername = out; + if (!this._handle || !this._handle.getpeername) { + return this._peername || {}; + } else if (!this._peername) { + this._peername = {}; + // FIXME(bnoordhuis) Throw when the return value is not 0? + this._handle.getpeername(this._peername); } return this._peername; }; @@ -714,12 +712,10 @@ protoGetter('remotePort', function remotePort() { Socket.prototype._getsockname = function() { if (!this._handle || !this._handle.getsockname) { return {}; - } - if (!this._sockname) { - const out = {}; - const err = this._handle.getsockname(out); - if (err) return {}; // FIXME(bnoordhuis) Throw? - this._sockname = out; + } else if (!this._sockname) { + this._sockname = {}; + // FIXME(bnoordhuis) Throw when the return value is not 0? + this._handle.getsockname(this._sockname); } return this._sockname; };