authorgravatar for git@l4.pmLuna <git@l4.pm> 2019-10-26 22:00:50-03:00
committergravatar for git@l4.pmLuna <git@l4.pm> 2019-10-26 22:00:50-03:00
logbf16fc210bc765202489ae83e0ad1dce8d9b4e16
tree7ab6cf25343606c2065b80a2f83294c56c6bca54
parentfafd1fd4806e4f92b19bd5285cbe8d6748a90c54

fix std.os.accept4

- add WouldBlock to list of errors in AcceptError - ptrCast addr_size to the system's socklen_t, instead of assuming it's usize

1 files changed, 5 insertions(+), 1 deletions(-)

lib/std/os.zig+5-1
...@@ -1630,6 +1630,10 @@ pub const AcceptError = error{...@@ -1630,6 +1630,10 @@ pub const AcceptError = error{
16301630
1631 /// Firewall rules forbid connection.1631 /// Firewall rules forbid connection.
1632 BlockedByFirewall,1632 BlockedByFirewall,
1633
1634 /// This error occurs when no global event loop is configured,
1635 /// and accepting from the socket would block.
1636 WouldBlock,
1633} || UnexpectedError;1637} || UnexpectedError;
16341638
1635/// Accept a connection on a socket.1639/// Accept a connection on a socket.
...@@ -1661,7 +1665,7 @@ pub fn accept4(...@@ -1661,7 +1665,7 @@ pub fn accept4(
1661 flags: u32,1665 flags: u32,
1662) AcceptError!i32 {1666) AcceptError!i32 {
1663 while (true) {1667 while (true) {
1664 const rc = system.accept4(sockfd, addr, addr_size, flags);1668 const rc = system.accept4(sockfd, addr, @ptrCast(*system.socklen_t, addr_size), flags);
1665 switch (errno(rc)) {1669 switch (errno(rc)) {
1666 0 => return @intCast(i32, rc),1670 0 => return @intCast(i32, rc),
1667 EINTR => continue,1671 EINTR => continue,