web: fix compile errors and critical runtime errors
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user