From a4559271501670b39305fc3575ae8d87fa03d35e Mon Sep 17 00:00:00 2001 From: Bill Nagel Date: Wed, 13 Jul 2022 00:27:32 -0400 Subject: [PATCH] handle HOSTUNREACH for blocking and non-blocking connects --- lib/std/os.zig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/std/os.zig b/lib/std/os.zig index f4653920ae..8b760668a3 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -3966,6 +3966,7 @@ pub fn connect(sock: socket_t, sock_addr: *const sockaddr, len: socklen_t) Conne .FAULT => unreachable, // The socket structure address is outside the user's address space. .INTR => continue, .ISCONN => unreachable, // The socket is already connected. + .HOSTUNREACH => return error.NetworkUnreachable, .NETUNREACH => return error.NetworkUnreachable, .NOTSOCK => unreachable, // The file descriptor sockfd does not refer to a socket. .PROTOTYPE => unreachable, // The socket type does not support the requested communications protocol. @@ -3995,6 +3996,7 @@ pub fn getsockoptError(sockfd: fd_t) ConnectError!void { .CONNREFUSED => return error.ConnectionRefused, .FAULT => unreachable, // The socket structure address is outside the user's address space. .ISCONN => unreachable, // The socket is already connected. + .HOSTUNREACH => return error.NetworkUnreachable, .NETUNREACH => return error.NetworkUnreachable, .NOTSOCK => unreachable, // The file descriptor sockfd does not refer to a socket. .PROTOTYPE => unreachable, // The socket type does not support the requested communications protocol.