web: fix compile errors and critical runtime errors

This commit is contained in:
2026-03-08 15:48:20 +01:00
parent 738ba5bd37
commit e09a00a4ba
7 changed files with 105 additions and 61 deletions

View File

@@ -14,7 +14,7 @@ read_buffer_size: usize,
read_head: usize,
read_tail: usize,
write_buffer: []const u8,
write_buffer: []u8,
pub fn worker(
self: *Worker,
@@ -31,11 +31,11 @@ pub fn worker(
server.mutex.unlock();
defer {
server.mutex.lock();
server.connection_pool.append(self.connection.node);
server.connection_pool.append(&connection.node);
server.cond_connection_freed.signal();
}
self.handleConnection(server, server.request_router, connection, running) catch |err| {
self.handleConnection(server.request_router, connection, running) catch |err| {
std.log.err("Error while handling connection: {}", .{err});
};
} else {
@@ -53,8 +53,9 @@ fn handleConnection(
defer connection.deinit();
while (running.load(.acquire)) {
const res = self.handleRequest(request_router, running) catch |err| {
const res = self.handleRequest(request_router, connection) catch |err| {
std.log.err("Error while handling request: {}", .{err});
return err;
};
if (!res) break;
@@ -68,6 +69,11 @@ fn handleRequest(
) !bool {
var response: Response = .init(connection, self.write_buffer);
var parser: http.Parser = .init(request_router, &response);
defer {
if (parser.request_handler) |rh| {
rh.rawFinalize();
}
}
var leftover_bytes = self.read_tail - self.read_head;
const max_read_tail = self.read_head + self.read_buffer_size;