summaryrefslogtreecommitdiff
path: root/src/server/Server.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Server.zig')
-rw-r--r--src/server/Server.zig10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/Server.zig b/src/server/Server.zig
index e5f199f..18214ae 100644
--- a/src/server/Server.zig
+++ b/src/server/Server.zig
@@ -126,9 +126,10 @@ fn handleConnectionInfallible(
stream: Stream,
r_buf_size: usize,
w_buf_size: usize,
-) void {
- handleConnection(server, server_allocator, io, id, stream, r_buf_size, w_buf_size) catch |err| {
- log.err("Failed processing client {d}: {any}", .{ id, err });
+) !void {
+ handleConnection(server, server_allocator, io, id, stream, r_buf_size, w_buf_size) catch |err| switch (err) {
+ error.Canceled => return error.Canceled,
+ else => log.err("Failed processing client {d}: {any}", .{ id, err }),
};
}
@@ -229,8 +230,9 @@ fn handleConnection(
},
}
} else |err| switch (err) {
- error.EndOfStream => {
+ error.EndOfStream, error.ReadFailed => {
log.debug("Client {d} disconnected", .{id});
+ return error.Canceled;
},
else => {
return err;