Skip to content

Commit 9668098

Browse files
authored
Merge pull request #25839 from Rexicon226/socket-bind-fix
Io.net: fix compile error in `receive` and `receiveTimeout`
2 parents fb914a9 + 71988d6 commit 9668098

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

lib/std/Io/net.zig

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

0 commit comments

Comments
 (0)