authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2025-11-10 14:38:54+00:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2025-11-10 14:38:54+00:00
log966809862fb0dee03fbb79eb6b907bb801a5176b
treeacb03521e1fdcb3061e1dec2a6902037a16621f4
parentfb914a9a1002ec178aa493e974dfb5a3e6aa4bdd
parent71988d6719db20e1be24586bab201af72b021b3c
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #25839 from Rexicon226/socket-bind-fix

Io.net: fix compile error in `receive` and `receiveTimeout`

1 files changed, 12 insertions(+), 4 deletions(-)

lib/std/Io/net.zig+12-4
......@@ -1118,8 +1118,14 @@ pub const Socket = struct {
11181118 /// See also:
11191119 /// * `receiveTimeout`
11201120 pub fn receive(s: *const Socket, io: Io, buffer: []u8) ReceiveError!IncomingMessage {
1121 var message: IncomingMessage = undefined;
1122 assert(1 == try io.vtable.netReceive(io.userdata, s.handle, (&message)[0..1], buffer, .{}, .none));
1121 var message: IncomingMessage = .init;
1122 const maybe_err, const count = io.vtable.netReceive(io.userdata, s.handle, (&message)[0..1], buffer, .{}, .none);
1123 if (maybe_err) |err| switch (err) {
1124 // No timeout is passed to `netReceieve`, so it must not return timeout related errors.
1125 error.Timeout, error.UnsupportedClock => unreachable,
1126 else => |e| return e,
1127 };
1128 assert(1 == count);
11231129 return message;
11241130 }
11251131
......@@ -1138,8 +1144,10 @@ pub const Socket = struct {
11381144 buffer: []u8,
11391145 timeout: Io.Timeout,
11401146 ) ReceiveTimeoutError!IncomingMessage {
1141 var message: IncomingMessage = undefined;
1142 assert(1 == try io.vtable.netReceive(io.userdata, s.handle, (&message)[0..1], buffer, .{}, timeout));
1147 var message: IncomingMessage = .init;
1148 const maybe_err, const count = io.vtable.netReceive(io.userdata, s.handle, (&message)[0..1], buffer, .{}, timeout);
1149 if (maybe_err) |err| return err;
1150 assert(1 == count);
11431151 return message;
11441152 }
11451153