From a8b516fdaac3a2512042ceaec669cb63fb8d73e3 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Thu, 4 Dec 2025 14:32:36 +0100 Subject: [PATCH] std.posix: handle ENOTCONN for getpeername --- lib/std/posix.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/std/posix.zig b/lib/std/posix.zig index 4176910537..ec35baa07c 100644 --- a/lib/std/posix.zig +++ b/lib/std/posix.zig @@ -3635,6 +3635,9 @@ pub const GetSockNameError = error{ SocketNotBound, FileDescriptorNotASocket, + + /// The socket is not connected (connection-oriented sockets only). + SocketUnconnected, } || UnexpectedError; pub fn getsockname(sock: socket_t, addr: *sockaddr, addrlen: *socklen_t) GetSockNameError!void { @@ -3676,6 +3679,7 @@ pub fn getpeername(sock: socket_t, addr: *sockaddr, addrlen: *socklen_t) GetSock .EFAULT => unreachable, // addr or addrlen have invalid pointers or addrlen points to an incorrect value .ENOTSOCK => return error.FileDescriptorNotASocket, .EINVAL => return error.SocketNotBound, + .ENOTCONN => return error.SocketUnconnected, else => |err| return windows.unexpectedWSAError(err), } } @@ -3691,6 +3695,7 @@ pub fn getpeername(sock: socket_t, addr: *sockaddr, addrlen: *socklen_t) GetSock .INVAL => unreachable, // invalid parameters .NOTSOCK => return error.FileDescriptorNotASocket, .NOBUFS => return error.SystemResources, + .NOTCONN => return error.SocketUnconnected, } } }