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

Io.net: fix compile error in `receive` and `receiveTimeout`
This commit is contained in:
Matthew Lugg 2025-11-10 14:38:54 +00:00 committed by GitHub
commit 966809862f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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;
}