aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/ZigGlobalObject.cpp
diff options
context:
space:
mode:
authorGravatar Ciro Spaciari <ciro.spaciari@gmail.com> 2023-07-28 19:43:15 -0300
committerGravatar GitHub <noreply@github.com> 2023-07-28 15:43:15 -0700
commite7c80b90b81847be158a6e87d0200a8df4121a37 (patch)
treee784c2311f88206ce9832447a113d81aea87afbf /src/bun.js/bindings/ZigGlobalObject.cpp
parente110ccf84d8d9034e82a79bf7abf1fa92b2370be (diff)
downloadbun-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.cpp16
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) {