commit 5ccfeb9268a5cb42efc7cd3350ae73bd960eafc3 (tree)
parent 4bdbcfe95b8f1c1575d045b18225ba743000f956
Author: Andrew Kelley <andrew@ziglang.org>
Date: Wed, 8 Apr 2026 10:46:39 -0700
std.Io.net: add error.PortUnreachable to NetReceive
closes #31787
Diffstat:
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/lib/std/Io.zig b/lib/std/Io.zig
@@ -374,6 +374,13 @@ pub const Operation = union(enum) {
ConnectionResetByPeer,
/// The local network interface used to reach the destination is offline.
NetworkDown,
+ /// A connectionless packet was previously sent successfully,
+ /// however, it was not received because no service is operating at
+ /// the destination port of the transport on the remote system.
+ /// This caused an ICMP port unreachable packet to be returned to
+ /// the OS where it was queued up to be reported at the next call
+ /// to send or receive on the bound socket.
+ PortUnreachable,
} || Io.UnexpectedError;
pub const Result = struct { ?net.Socket.ReceiveError, usize };
diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig
@@ -13017,6 +13017,7 @@ fn netReceiveOneWindows(
.CANCELLED => unreachable,
.INSUFFICIENT_RESOURCES => return error.SystemResources,
.BUFFER_OVERFLOW => return error.MessageOversize,
+ .PORT_UNREACHABLE => return error.PortUnreachable,
else => |status| return windows.unexpectedStatus(status),
}
}