From 753dfe81d9986ffe206a66d175a971bcaf37b7ea Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Sun, 23 Jan 2022 22:07:49 +0100 Subject: [PATCH] client: handle EPROTO in dispatch() --- src/client_display_functions.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/client_display_functions.zig b/src/client_display_functions.zig index 8f18078..9141c87 100644 --- a/src/client_display_functions.zig +++ b/src/client_display_functions.zig @@ -17,7 +17,7 @@ pub const getFd = wl_display_get_fd; extern fn wl_display_dispatch(display: *Display) c_int; pub fn dispatch(display: *Display) !u32 { const rc = wl_display_dispatch(display); - // poll(2), sendmsg(2), recvmsg(2), EOVERFLOW, E2BIG + // poll(2), sendmsg(2), recvmsg(2), EOVERFLOW, E2BIG, EPROTO return switch (os.errno(rc)) { .SUCCESS => @intCast(u32, rc), .FAULT => unreachable, @@ -40,6 +40,7 @@ pub fn dispatch(display: *Display) !u32 { .CONNREFUSED => error.ConnectionRefused, .OVERFLOW => error.BufferOverflow, .@"2BIG" => error.BufferOverflow, + .PROTO => error.ProtocolError, else => |err| os.unexpectedErrno(err), }; } @@ -47,6 +48,7 @@ pub fn dispatch(display: *Display) !u32 { extern fn wl_display_dispatch_queue(display: *Display, queue: *client.wl.EventQueue) c_int; pub fn dispatchQueue(display: *Display, queue: *client.wl.EventQueue) !u32 { const rc = wl_display_dispatch_queue(display, queue); + // poll(2), sendmsg(2), recvmsg(2), EOVERFLOW, E2BIG, EPROTO return switch (os.errno(rc)) { .SUCCESS => @intCast(u32, rc), .FAULT => unreachable, @@ -69,6 +71,7 @@ pub fn dispatchQueue(display: *Display, queue: *client.wl.EventQueue) !u32 { .CONNREFUSED => error.ConnectionRefused, .OVERFLOW => error.BufferOverflow, .@"2BIG" => error.BufferOverflow, + .PROTO => error.ProtocolError, else => |err| os.unexpectedErrno(err), }; }