From 4f14eb15454b9f6ae7f0145947debd2c79a2a84f Mon Sep 17 00:00:00 2001 From: jakecastelli Date: Mon, 26 Aug 2024 01:12:58 +0930 Subject: [PATCH] Revert "net: validate host name for server listen" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 52322aa42a43cb820432946e7997d070de078a10. PR-URL: https://github.com/nodejs/node/pull/54554 Reviewed-By: Claudio Wunder Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Ulises Gascón Reviewed-By: Benjamin Gruenbaum --- lib/net.js | 8 -------- test/parallel/test-net-server-listen-options.js | 12 ------------ 2 files changed, 20 deletions(-) diff --git a/lib/net.js b/lib/net.js index eda1e24cd3b8d7..be21c566610286 100644 --- a/lib/net.js +++ b/lib/net.js @@ -35,8 +35,6 @@ const { NumberParseInt, ObjectDefineProperty, ObjectSetPrototypeOf, - RegExp, - RegExpPrototypeExec, Symbol, SymbolAsyncDispose, SymbolDispose, @@ -145,8 +143,6 @@ const { kTimeout } = require('internal/timers'); const DEFAULT_IPV4_ADDR = '0.0.0.0'; const DEFAULT_IPV6_ADDR = '::'; -const HOST_REGEXP = new RegExp('^[a-zA-Z0-9-:%.]+$'); - const noop = () => {}; const kPerfHooksNetConnectContext = Symbol('kPerfHooksNetConnectContext'); @@ -2024,10 +2020,6 @@ Server.prototype.listen = function(...args) { toNumber(args.length > 2 && args[2]); // (port, host, backlog) options = options._handle || options.handle || options; - if (typeof options.host === 'string' && RegExpPrototypeExec(HOST_REGEXP, options.host) === null) { - throw new ERR_INVALID_ARG_VALUE('host', options.host); - } - const flags = getFlags(options.ipv6Only); // Refresh the id to make the previous call invalid this._listeningId++; diff --git a/test/parallel/test-net-server-listen-options.js b/test/parallel/test-net-server-listen-options.js index cec081430cf504..7e306af8ab082f 100644 --- a/test/parallel/test-net-server-listen-options.js +++ b/test/parallel/test-net-server-listen-options.js @@ -15,10 +15,6 @@ function close() { this.close(); } // Test listen({port}) net.createServer().listen({ port: 0 }) .on('listening', common.mustCall(close)); - // Test listen(host, port}) on ipv4 - net.createServer().listen({ host: '127.0.0.1', port: '3000' }).on('listening', common.mustCall(close)); - // Test listen(host, port}) on ipv6 - net.createServer().listen({ host: '::', port: '3001' }).on('listening', common.mustCall(close)); } // Test listen(port, cb) and listen({ port }, cb) combinations @@ -70,13 +66,6 @@ const listenOnPort = [ name: 'TypeError', message: /^The argument 'options' must have the property "port" or "path"\. Received .+$/, }); - } else if (typeof options.host === 'string' && !options.host.match(/^[a-zA-Z0-9-:%.]+$/)) { - assert.throws(fn, - { - code: 'ERR_INVALID_ARG_VALUE', - name: 'TypeError', - message: /^The argument 'host' is invalid\. Received .+$/, - }); } else { assert.throws(fn, { @@ -102,5 +91,4 @@ const listenOnPort = [ shouldFailToListen({ host: 'localhost:3000' }); shouldFailToListen({ host: { port: 3000 } }); shouldFailToListen({ exclusive: true }); - shouldFailToListen({ host: '[::]', port: 3000 }); }