aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/javascript/jsc/api')
-rw-r--r--src/javascript/jsc/api/html_rewriter.zig3
-rw-r--r--src/javascript/jsc/api/server.zig30
2 files changed, 13 insertions, 20 deletions
diff --git a/src/javascript/jsc/api/html_rewriter.zig b/src/javascript/jsc/api/html_rewriter.zig
index e3a3c6d75..ac6190f7e 100644
--- a/src/javascript/jsc/api/html_rewriter.zig
+++ b/src/javascript/jsc/api/html_rewriter.zig
@@ -217,7 +217,7 @@ pub const HTMLRewriter = struct {
pub fn returnEmptyResponse(this: *HTMLRewriter, global: *JSGlobalObject, response: *Response) JSValue {
var result = bun.default_allocator.create(Response) catch unreachable;
- response.cloneInto(result, getAllocator(global.ref()));
+ response.cloneInto(result, getAllocator(global.ref()), global);
this.finalizeWithoutDestroy();
return JSValue.fromRef(Response.makeMaybePooled(global.ref(), result));
}
@@ -280,7 +280,6 @@ pub const HTMLRewriter = struct {
.body = .{
.init = .{
.status_code = 200,
- .headers = null,
},
.value = .{
.Locked = .{
diff --git a/src/javascript/jsc/api/server.zig b/src/javascript/jsc/api/server.zig
index 38fad7c0c..aeb13b6bc 100644
--- a/src/javascript/jsc/api/server.zig
+++ b/src/javascript/jsc/api/server.zig
@@ -377,7 +377,7 @@ pub fn NewServer(comptime ssl_enabled: bool, comptime debug_mode: bool) type {
response_ptr: ?*JSC.WebCore.Response = null,
blob: JSC.WebCore.Blob = JSC.WebCore.Blob{},
promise: ?*JSC.JSValue = null,
- response_headers: ?*JSC.WebCore.Headers.RefCountedHeaders = null,
+ response_headers: ?*JSC.FetchHeaders = null,
has_abort_handler: bool = false,
has_sendfile_ctx: bool = false,
has_called_error_handler: bool = false,
@@ -559,25 +559,18 @@ pub fn NewServer(comptime ssl_enabled: bool, comptime debug_mode: bool) type {
fn writeHeaders(
this: *RequestContext,
- headers_: *Headers.RefCountedHeaders,
+ headers: *JSC.FetchHeaders,
) void {
- var headers: *JSC.WebCore.Headers = headers_.get();
- if (headers.getHeaderIndex("content-length")) |index| {
- headers.entries.orderedRemove(index);
- }
-
- if (this.blob.content_type.len > 0 and headers.getHeaderIndex("content-type") == null) {
- this.resp.writeHeader("content-type", this.blob.content_type);
- } else if (MimeType.sniff(this.blob.sharedView())) |content| {
- this.resp.writeHeader("content-type", content.value);
+ headers.remove(&ZigString.init("content-length"));
+ if (!headers.has(&ZigString.init("content-type"))) {
+ if (this.blob.content_type.len > 0) {
+ this.resp.writeHeader("content-type", this.blob.content_type);
+ } else if (MimeType.sniff(this.blob.sharedView())) |content| {
+ this.resp.writeHeader("content-type", content.value);
+ }
}
- defer headers_.deref();
- var entries = headers.entries.slice();
- const names = entries.items(.name);
- const values = entries.items(.value);
-
- this.resp.writeHeaders(names, values, headers.buf.items);
+ headers.toUWSResponse(ssl_enabled, this.resp);
}
pub fn writeStatus(this: *RequestContext, status: u16) void {
@@ -834,8 +827,9 @@ pub fn NewServer(comptime ssl_enabled: bool, comptime debug_mode: bool) type {
this.writeStatus(status);
- if (response.body.init.headers) |headers_| {
+ if (response.body.init.headers.as(JSC.FetchHeaders)) |headers_| {
this.writeHeaders(headers_);
+ headers_.deref();
} else if (this.blob.content_type.len > 0) {
this.resp.writeHeader("content-type", this.blob.content_type);
} else if (MimeType.sniff(this.blob.sharedView())) |content| {