mirror of
https://github.com/oven-sh/bun
synced 2026-02-16 05:42:43 +00:00
fix(Bun.serve) ensure timeout reset when we write data (#13525)
This commit is contained in:
@@ -2522,6 +2522,8 @@ pub fn HTTPServerWritable(comptime ssl: bool) type {
|
||||
}
|
||||
|
||||
fn registerAutoFlusher(this: *@This()) void {
|
||||
// if we enqueue data we should reset the timeout
|
||||
this.res.resetTimeout();
|
||||
if (!this.auto_flusher.registered)
|
||||
AutoFlusher.registerDeferredMicrotaskWithTypeUnchecked(@This(), this, this.globalThis.bunVM());
|
||||
}
|
||||
|
||||
@@ -1161,7 +1161,15 @@ extern "C"
|
||||
uwsRes->resetTimeout();
|
||||
}
|
||||
}
|
||||
|
||||
void uws_res_reset_timeout(int ssl, uws_res_r res) {
|
||||
if (ssl) {
|
||||
uWS::HttpResponse<true> *uwsRes = (uWS::HttpResponse<true> *)res;
|
||||
uwsRes->resetTimeout();
|
||||
} else {
|
||||
uWS::HttpResponse<false> *uwsRes = (uWS::HttpResponse<false> *)res;
|
||||
uwsRes->resetTimeout();
|
||||
}
|
||||
}
|
||||
void uws_res_timeout(int ssl, uws_res_r res, uint8_t seconds) {
|
||||
if (ssl) {
|
||||
uWS::HttpResponse<true> *uwsRes = (uWS::HttpResponse<true> *)res;
|
||||
|
||||
@@ -2270,6 +2270,9 @@ pub fn NewApp(comptime ssl: bool) type {
|
||||
pub fn timeout(res: *Response, seconds: u8) void {
|
||||
uws_res_timeout(ssl_flag, res.downcast(), seconds);
|
||||
}
|
||||
pub fn resetTimeout(res: *Response) void {
|
||||
uws_res_reset_timeout(ssl_flag, res.downcast());
|
||||
}
|
||||
pub fn write(res: *Response, data: []const u8) bool {
|
||||
return uws_res_write(ssl_flag, res.downcast(), data.ptr, data.len);
|
||||
}
|
||||
@@ -2683,7 +2686,7 @@ extern fn uws_res_write_header_int(ssl: i32, res: *uws_res, key: [*c]const u8, k
|
||||
extern fn uws_res_end_without_body(ssl: i32, res: *uws_res, close_connection: bool) void;
|
||||
extern fn uws_res_end_sendfile(ssl: i32, res: *uws_res, write_offset: u64, close_connection: bool) void;
|
||||
extern fn uws_res_timeout(ssl: i32, res: *uws_res, timeout: u8) void;
|
||||
|
||||
extern fn uws_res_reset_timeout(ssl: i32, res: *uws_res) void;
|
||||
extern fn uws_res_write(ssl: i32, res: *uws_res, data: [*c]const u8, length: usize) bool;
|
||||
extern fn uws_res_get_write_offset(ssl: i32, res: *uws_res) u64;
|
||||
extern fn uws_res_override_write_offset(ssl: i32, res: *uws_res, u64) void;
|
||||
|
||||
Reference in New Issue
Block a user