diff options
Diffstat (limited to 'src/bun.js/api/server.zig')
-rw-r--r-- | src/bun.js/api/server.zig | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/bun.js/api/server.zig b/src/bun.js/api/server.zig index 9af44deba..094f5e385 100644 --- a/src/bun.js/api/server.zig +++ b/src/bun.js/api/server.zig @@ -4659,8 +4659,8 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { // TODO: set Host header // TODO: set User-Agent header if (first_arg.isString()) { - var url_zig_str = ZigString.init(""); - JSValue.fromRef(arguments[0]).toZigString(&url_zig_str, globalThis); + const url_zig_str = JSValue.c(arguments[0]).toSlice(globalThis, bun.default_allocator); + defer url_zig_str.deinit(); var temp_url_str = url_zig_str.slice(); if (temp_url_str.len == 0) { @@ -4706,12 +4706,18 @@ pub fn NewServer(comptime ssl_enabled_: bool, comptime debug_mode_: bool) type { existing_request = Request{ .url = url.href, + .url_was_allocated = true, .headers = headers, .body = JSC.WebCore.InitRequestBodyValue(body) catch unreachable, .method = method, }; } else if (first_arg.as(Request)) |request_| { - existing_request = request_.*; + request_.cloneInto( + &existing_request, + bun.default_allocator, + globalThis, + false, + ); } else { const fetch_error = WebCore.Fetch.fetch_type_error_strings.get(js.JSValueGetType(ctx, arguments[0])); return JSPromise.rejectedPromiseValue(globalThis, ZigString.init(fetch_error).toErrorInstance(globalThis)).asRef(); |