From 59035ae3e9d2de2d95036ff522fb926a3bd27b3c Mon Sep 17 00:00:00 2001 From: lithdew Date: Wed, 31 Mar 2021 00:28:48 +0900 Subject: [PATCH] os: handle ECONNRESET for connect() syscall --- lib/std/os.zig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/std/os.zig b/lib/std/os.zig index 9d9fd872a8..e4bd96de05 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -3267,6 +3267,7 @@ pub fn connect(sock: socket_t, sock_addr: *const sockaddr, len: socklen_t) Conne .WSAEADDRINUSE => return error.AddressInUse, .WSAEADDRNOTAVAIL => return error.AddressNotAvailable, .WSAECONNREFUSED => return error.ConnectionRefused, + .WSAECONNRESET => return error.ConnectionResetByPeer, .WSAETIMEDOUT => return error.ConnectionTimedOut, .WSAEHOSTUNREACH, // TODO: should we return NetworkUnreachable in this case as well? .WSAENETUNREACH, @@ -3296,6 +3297,7 @@ pub fn connect(sock: socket_t, sock_addr: *const sockaddr, len: socklen_t) Conne EALREADY => unreachable, // The socket is nonblocking and a previous connection attempt has not yet been completed. EBADF => unreachable, // sockfd is not a valid open file descriptor. ECONNREFUSED => return error.ConnectionRefused, + ECONNRESET => return error.ConnectionResetByPeer, EFAULT => unreachable, // The socket structure address is outside the user's address space. EINTR => continue, EISCONN => unreachable, // The socket is already connected.