1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 07:14:47 -05:00

fix(ext/net): check for TLS using undefined rather than using ReflectHas (#23538)

Fixes #23537
This commit is contained in:
Matt Mastracci 2024-04-24 14:27:15 -04:00 committed by GitHub
parent eed2598e6c
commit da70608700
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 35 additions and 5 deletions

View file

@ -15,7 +15,6 @@ import {
const {
Number,
ObjectDefineProperty,
ReflectHas,
TypeError,
} = primordials;
@ -134,10 +133,10 @@ class TlsListener extends Listener {
* interfaces.
*/
function hasTlsKeyPairOptions(options) {
return (ReflectHas(options, "cert") || ReflectHas(options, "key") ||
ReflectHas(options, "certFile") ||
ReflectHas(options, "keyFile") || ReflectHas(options, "privateKey") ||
ReflectHas(options, "certChain"));
return (options.cert !== undefined || options.key !== undefined ||
options.certFile !== undefined ||
options.keyFile !== undefined || options.privateKey !== undefined ||
options.certChain !== undefined);
}
/**

View file

@ -2889,6 +2889,37 @@ Deno.test(
},
);
// Regression test for https://github.com/denoland/deno/issues/23537
Deno.test(
{ permissions: { read: true, net: true } },
async function httpServerUndefinedCert() {
const ac = new AbortController();
const { promise, resolve } = Promise.withResolvers<void>();
const hostname = "127.0.0.1";
const server = Deno.serve({
handler: () => new Response("Hello World"),
hostname,
port: servePort,
signal: ac.signal,
onListen: onListen(resolve),
onError: createOnErrorCb(ac),
// Undefined should be equivalent to missing
cert: undefined,
key: undefined,
});
await promise;
const resp = await fetch(`http://localhost:${servePort}/`);
const respBody = await resp.text();
assertEquals("Hello World", respBody);
ac.abort();
await server.finished;
},
);
Deno.test(
{ permissions: { read: true, net: true } },
async function httpServerWithTls() {