summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/internal/net.js11
-rw-r--r--lib/net.js11
-rw-r--r--node.gyp1
-rw-r--r--test/parallel/test-net-internal.js15
4 files changed, 29 insertions, 9 deletions
diff --git a/lib/internal/net.js b/lib/internal/net.js
new file mode 100644
index 0000000000..effc6485d2
--- /dev/null
+++ b/lib/internal/net.js
@@ -0,0 +1,11 @@
+'use strict';
+
+module.exports = { isLegalPort };
+
+// Check that the port number is not NaN when coerced to a number,
+// is an integer and that it falls within the legal range of port numbers.
+function isLegalPort(port) {
+ if (typeof port === 'string' && port.trim() === '')
+ return false;
+ return +port === (port >>> 0) && port >= 0 && port <= 0xFFFF;
+}
diff --git a/lib/net.js b/lib/net.js
index 93f3744193..fca70fb51f 100644
--- a/lib/net.js
+++ b/lib/net.js
@@ -5,6 +5,7 @@ const stream = require('stream');
const timers = require('timers');
const util = require('util');
const internalUtil = require('internal/util');
+const internalNet = require('internal/net');
const assert = require('assert');
const cares = process.binding('cares_wrap');
const uv = process.binding('uv');
@@ -22,6 +23,7 @@ const WriteWrap = process.binding('stream_wrap').WriteWrap;
var cluster;
const errnoException = util._errnoException;
const exceptionWithHostPort = util._exceptionWithHostPort;
+const isLegalPort = internalNet.isLegalPort;
function noop() {}
@@ -846,15 +848,6 @@ function connect(self, address, port, addressType, localAddress, localPort) {
}
-// Check that the port number is not NaN when coerced to a number,
-// is an integer and that it falls within the legal range of port numbers.
-function isLegalPort(port) {
- if (typeof port === 'string' && port.trim() === '')
- return false;
- return +port === (port >>> 0) && port >= 0 && port <= 0xFFFF;
-}
-
-
Socket.prototype.connect = function(options, cb) {
if (this.write !== Socket.prototype.write)
this.write = Socket.prototype.write;
diff --git a/node.gyp b/node.gyp
index 672c3ce669..a65f76e4ce 100644
--- a/node.gyp
+++ b/node.gyp
@@ -73,6 +73,7 @@
'lib/internal/cluster.js',
'lib/internal/freelist.js',
'lib/internal/linkedlist.js',
+ 'lib/internal/net.js',
'lib/internal/module.js',
'lib/internal/readline.js',
'lib/internal/repl.js',
diff --git a/test/parallel/test-net-internal.js b/test/parallel/test-net-internal.js
new file mode 100644
index 0000000000..b59b92d0fb
--- /dev/null
+++ b/test/parallel/test-net-internal.js
@@ -0,0 +1,15 @@
+'use strict';
+
+// Flags: --expose-internals
+
+require('../common');
+const assert = require('assert');
+const net = require('internal/net');
+
+assert.strictEqual(net.isLegalPort(''), false);
+assert.strictEqual(net.isLegalPort('0'), true);
+assert.strictEqual(net.isLegalPort(0), true);
+assert.strictEqual(net.isLegalPort(65536), false);
+assert.strictEqual(net.isLegalPort('65535'), true);
+assert.strictEqual(net.isLegalPort(undefined), false);
+assert.strictEqual(net.isLegalPort(null), true);