commit 966809862fb0dee03fbb79eb6b907bb801a5176b (tree)
parent fb914a9a1002ec178aa493e974dfb5a3e6aa4bdd
Author: Matthew Lugg <mlugg@mlugg.co.uk>
Date: Mon, 10 Nov 2025 14:38:54 +0000
Merge pull request #25839 from Rexicon226/socket-bind-fix
Io.net: fix compile error in `receive` and `receiveTimeout`
Diffstat:
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/lib/std/Io/net.zig b/lib/std/Io/net.zig
@@ -1118,8 +1118,14 @@ pub const Socket = struct {
/// See also:
/// * `receiveTimeout`
pub fn receive(s: *const Socket, io: Io, buffer: []u8) ReceiveError!IncomingMessage {
- var message: IncomingMessage = undefined;
- assert(1 == try io.vtable.netReceive(io.userdata, s.handle, (&message)[0..1], buffer, .{}, .none));
+ var message: IncomingMessage = .init;
+ const maybe_err, const count = io.vtable.netReceive(io.userdata, s.handle, (&message)[0..1], buffer, .{}, .none);
+ if (maybe_err) |err| switch (err) {
+ // No timeout is passed to `netReceieve`, so it must not return timeout related errors.
+ error.Timeout, error.UnsupportedClock => unreachable,
+ else => |e| return e,
+ };
+ assert(1 == count);
return message;
}
@@ -1138,8 +1144,10 @@ pub const Socket = struct {
buffer: []u8,
timeout: Io.Timeout,
) ReceiveTimeoutError!IncomingMessage {
- var message: IncomingMessage = undefined;
- assert(1 == try io.vtable.netReceive(io.userdata, s.handle, (&message)[0..1], buffer, .{}, timeout));
+ var message: IncomingMessage = .init;
+ const maybe_err, const count = io.vtable.netReceive(io.userdata, s.handle, (&message)[0..1], buffer, .{}, timeout);
+ if (maybe_err) |err| return err;
+ assert(1 == count);
return message;
}