From c89df809b9ae2dd0c36071544aced320120d4a9d Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 7 Jan 2026 14:41:38 -0800 Subject: [PATCH] goodbye posix.listen see #6600 --- lib/std/os/linux/IoUring/test.zig | 11 +++++++++-- lib/std/posix.zig | 21 --------------------- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/lib/std/os/linux/IoUring/test.zig b/lib/std/os/linux/IoUring/test.zig index 03477fb882..adebad9180 100644 --- a/lib/std/os/linux/IoUring/test.zig +++ b/lib/std/os/linux/IoUring/test.zig @@ -1037,7 +1037,7 @@ test "shutdown" { defer posix.close(server); try posix.setsockopt(server, posix.SOL.SOCKET, posix.SO.REUSEADDR, &mem.toBytes(@as(c_int, 1))); try bind(server, addrAny(&address), @sizeOf(linux.sockaddr.in)); - try posix.listen(server, 1); + try listen(server, 1); // set address to the OS-chosen IP/port. var slen: posix.socklen_t = @sizeOf(linux.sockaddr.in); @@ -2662,7 +2662,7 @@ fn createListenerSocket(address: *linux.sockaddr.in) !posix.socket_t { try posix.setsockopt(listener_socket, posix.SOL.SOCKET, posix.SO.REUSEADDR, &mem.toBytes(@as(c_int, 1))); try bind(listener_socket, addrAny(address), @sizeOf(linux.sockaddr.in)); - try posix.listen(listener_socket, kernel_backlog); + try listen(listener_socket, kernel_backlog); // set address to the OS-chosen IP/port. var slen: posix.socklen_t = @sizeOf(linux.sockaddr.in); @@ -2710,3 +2710,10 @@ fn bind(sock: posix.socket_t, addr: *const posix.sockaddr, len: posix.socklen_t) else => return error.BindFailure, } } + +fn listen(sock: posix.socket_t, backlog: u31) !void { + switch (posix.errno(posix.system.listen(sock, backlog))) { + .SUCCESS => return, + else => return error.ListenFailure, + } +} diff --git a/lib/std/posix.zig b/lib/std/posix.zig index 69a26ee202..6fbad51263 100644 --- a/lib/std/posix.zig +++ b/lib/std/posix.zig @@ -619,27 +619,6 @@ pub fn socketpair(domain: u32, socket_type: u32, protocol: u32) SocketError![2]s } } -pub const ListenError = error{ - FileDescriptorNotASocket, - OperationUnsupported, -} || std.Io.net.IpAddress.ListenError || std.Io.net.UnixAddress.ListenError; - -pub fn listen(sock: socket_t, backlog: u31) ListenError!void { - if (native_os == .windows) { - @compileError("use std.Io instead"); - } else { - const rc = system.listen(sock, backlog); - switch (errno(rc)) { - .SUCCESS => return, - .ADDRINUSE => return error.AddressInUse, - .BADF => unreachable, - .NOTSOCK => return error.FileDescriptorNotASocket, - .OPNOTSUPP => return error.OperationUnsupported, - else => |err| return unexpectedErrno(err), - } - } -} - pub const AcceptError = std.Io.net.Server.AcceptError; pub fn accept(