summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/tests/unit/net_test.ts9
-rw-r--r--cli/tests/unit/tls_test.ts14
-rw-r--r--ext/net/01_net.js3
-rw-r--r--ext/net/02_tls.js4
4 files changed, 27 insertions, 3 deletions
diff --git a/cli/tests/unit/net_test.ts b/cli/tests/unit/net_test.ts
index 32250bbd0..ca4c5191c 100644
--- a/cli/tests/unit/net_test.ts
+++ b/cli/tests/unit/net_test.ts
@@ -1237,3 +1237,12 @@ Deno.test({
}, Deno.errors.AddrInUse);
listener1.close();
});
+
+Deno.test({
+ permissions: { net: true },
+}, function netTcpListenDoesNotThrowOnStringPort() {
+ // @ts-ignore String port is not allowed by typing, but it shouldn't throw
+ // for backwards compatibility.
+ const listener = Deno.listen({ hostname: "localhost", port: "0" });
+ listener.close();
+});
diff --git a/cli/tests/unit/tls_test.ts b/cli/tests/unit/tls_test.ts
index 11691379c..1f0702f62 100644
--- a/cli/tests/unit/tls_test.ts
+++ b/cli/tests/unit/tls_test.ts
@@ -1477,3 +1477,17 @@ Deno.test({
}, Deno.errors.AddrInUse);
listener1.close();
});
+
+Deno.test({
+ permissions: { net: true },
+}, function listenTlsDoesNotThrowOnStringPort() {
+ const listener = Deno.listenTls({
+ hostname: "localhost",
+ // @ts-ignore String port is not allowed by typing, but it shouldn't throw
+ // for backwards compatibility.
+ port: "0",
+ cert,
+ key,
+ });
+ listener.close();
+});
diff --git a/ext/net/01_net.js b/ext/net/01_net.js
index e8ce3a300..9cdcdb78c 100644
--- a/ext/net/01_net.js
+++ b/ext/net/01_net.js
@@ -15,6 +15,7 @@ const {
ArrayPrototypeForEach,
ArrayPrototypePush,
Error,
+ Number,
ObjectPrototypeIsPrototypeOf,
PromiseResolve,
SymbolAsyncIterator,
@@ -420,7 +421,7 @@ function listen(args) {
case "tcp": {
const { 0: rid, 1: addr } = ops.op_net_listen_tcp({
hostname: args.hostname ?? "0.0.0.0",
- port: args.port,
+ port: Number(args.port),
}, args.reusePort);
addr.transport = "tcp";
return new Listener(rid, addr);
diff --git a/ext/net/02_tls.js b/ext/net/02_tls.js
index a40972e34..4be2f08e0 100644
--- a/ext/net/02_tls.js
+++ b/ext/net/02_tls.js
@@ -4,7 +4,7 @@ const core = globalThis.Deno.core;
const ops = core.ops;
import { Conn, Listener } from "ext:deno_net/01_net.js";
const primordials = globalThis.__bootstrap.primordials;
-const { TypeError } = primordials;
+const { Number, TypeError } = primordials;
function opStartTls(args) {
return core.opAsync("op_tls_start", args);
@@ -70,7 +70,7 @@ function listenTls({
throw new TypeError(`Unsupported transport: '${transport}'`);
}
const { 0: rid, 1: localAddr } = ops.op_net_listen_tls(
- { hostname, port },
+ { hostname, port: Number(port) },
{ cert, certFile, key, keyFile, alpnProtocols, reusePort },
);
return new TlsListener(rid, localAddr);