diff options
author | 2023-07-28 19:43:15 -0300 | |
---|---|---|
committer | 2023-07-28 15:43:15 -0700 | |
commit | e7c80b90b81847be158a6e87d0200a8df4121a37 (patch) | |
tree | e784c2311f88206ce9832447a113d81aea87afbf /src/bun.js/bindings/ZigGlobalObject.cpp | |
parent | e110ccf84d8d9034e82a79bf7abf1fa92b2370be (diff) | |
download | bun-e7c80b90b81847be158a6e87d0200a8df4121a37.tar.gz bun-e7c80b90b81847be158a6e87d0200a8df4121a37.tar.zst bun-e7c80b90b81847be158a6e87d0200a8df4121a37.zip |
fix(tls) exposes native canonicalizeIP and fix rootCertificates (#3866)
* exposes native canonicalizeIP
* remove unintended duplicate
* add tests
* add tests for debug builds
* add rootCertificates test and fix len
* just randomize test ids on prisma
* remove work around and bump usockets with the actual fix
* fix case
* bump uws
Diffstat (limited to 'src/bun.js/bindings/ZigGlobalObject.cpp')
-rw-r--r-- | src/bun.js/bindings/ZigGlobalObject.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/bun.js/bindings/ZigGlobalObject.cpp b/src/bun.js/bindings/ZigGlobalObject.cpp index b853f585e..b7171b21c 100644 --- a/src/bun.js/bindings/ZigGlobalObject.cpp +++ b/src/bun.js/bindings/ZigGlobalObject.cpp @@ -127,6 +127,7 @@ using namespace Bun; extern "C" JSC::EncodedJSValue Bun__fetch(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); +extern "C" JSC::EncodedJSValue Bun__canonicalizeIP(JSC::JSGlobalObject* lexicalGlobalObject, JSC::CallFrame* callFrame); using JSGlobalObject = JSC::JSGlobalObject; @@ -1634,6 +1635,7 @@ JSC: return JSValue::encode( JSFunction::create(vm, globalObject, 1, pathToFileURLString, functionPathToFileURL, ImplementationVisibility::Public, NoIntrinsic)); } + if (string == "fileURLToPath"_s) { return JSValue::encode( JSFunction::create(vm, globalObject, 1, fileURLToPathString, functionFileURLToPath, ImplementationVisibility::Public, NoIntrinsic)); @@ -1663,12 +1665,17 @@ JSC: return JSValue::encode(obj); } - if (string == "rootCertificates"_s) { + if (string == "internal/tls"_s) { + auto* obj = constructEmptyObject(globalObject); + auto sourceOrigin = callFrame->callerSourceOrigin(vm).url(); +// expose for tests in debug mode only +#ifndef BUN_DEBUG bool isBuiltin = sourceOrigin.protocolIs("builtin"_s); if (!isBuiltin) { return JSC::JSValue::encode(JSC::jsUndefined()); } +#endif struct us_cert_string_t* out; auto size = us_raw_root_certs(&out); if (size < 0) { @@ -1680,7 +1687,12 @@ JSC: auto str = WTF::String::fromUTF8(raw.str, raw.len); rootCertificates->putDirectIndex(globalObject, i, JSC::jsString(vm, str)); } - return JSValue::encode(rootCertificates); + obj->putDirect( + vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "rootCertificates"_s)), rootCertificates, 0); + + obj->putDirect( + vm, JSC::PropertyName(JSC::Identifier::fromString(vm, "canonicalizeIP"_s)), JSC::JSFunction::create(vm, globalObject, 1, "canonicalizeIP"_s, Bun__canonicalizeIP, ImplementationVisibility::Public, NoIntrinsic), 0); + return JSValue::encode(obj); } if (string == "masqueradesAsUndefined"_s) { |