From 92ec24f77c6c146fd9943a41b055603ff1e442a5 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Mon, 30 Nov 2020 18:49:41 +0100 Subject: [PATCH] std/os: remove unneeded error from accept errorset POSIX compliant fnctl cannot return EPERM when getting/setting the given flags. See the specification here: https://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html --- lib/std/net.zig | 4 ---- lib/std/os.zig | 8 ++++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/std/net.zig b/lib/std/net.zig index 1466635ff..256a1f5cf 100644 --- a/lib/std/net.zig +++ b/lib/std/net.zig @@ -1661,10 +1661,6 @@ pub const StreamServer = struct { /// Firewall rules forbid connection. BlockedByFirewall, - /// Permission to create a socket of the specified type and/or - /// protocol is denied. - PermissionDenied, - FileDescriptorNotASocket, ConnectionResetByPeer, diff --git a/lib/std/os.zig b/lib/std/os.zig index ac9bbcfea..9fcb764e6 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -2942,10 +2942,6 @@ pub const AcceptError = error{ /// and accepting from the socket would block. WouldBlock, - /// Permission to create a socket of the specified type and/or - /// protocol is denied. - PermissionDenied, - /// An incoming connection was indicated, but was subsequently terminated by the /// remote peer prior to accepting the call. ConnectionResetByPeer, @@ -4130,12 +4126,14 @@ fn setSockFlags(sock: socket_t, flags: u32) !void { var fd_flags = fcntl(sock, F_GETFD, 0) catch |err| switch (err) { error.FileBusy => unreachable, error.Locked => unreachable, + error.PermissionDenied => unreachable, else => |e| return e, }; fd_flags |= FD_CLOEXEC; _ = fcntl(sock, F_SETFD, fd_flags) catch |err| switch (err) { error.FileBusy => unreachable, error.Locked => unreachable, + error.PermissionDenied => unreachable, else => |e| return e, }; } @@ -4156,12 +4154,14 @@ fn setSockFlags(sock: socket_t, flags: u32) !void { var fl_flags = fcntl(sock, F_GETFL, 0) catch |err| switch (err) { error.FileBusy => unreachable, error.Locked => unreachable, + error.PermissionDenied => unreachable, else => |e| return e, }; fl_flags |= O_NONBLOCK; _ = fcntl(sock, F_SETFL, fl_flags) catch |err| switch (err) { error.FileBusy => unreachable, error.Locked => unreachable, + error.PermissionDenied => unreachable, else => |e| return e, }; }