authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-11 12:07:06-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-14 00:16:49-07:00
log890f1fa848c8d55366fb3c5ff90247fe44ad7ccf
tree4efcd0e5c0501ac56e892c47bac0c2033e3a8f51
parent9a1f4cb011f8e6d5bc8355a7aaed37b437453e18

make msghdr.iovlen unsigned

I don't care what C headers say. This value is never supposed to be negative.

2 files changed, 3 insertions(+), 3 deletions(-)

lib/std/c.zig+2-2
...@@ -4110,7 +4110,7 @@ pub const msghdr_const = switch (native_os) {...@@ -4110,7 +4110,7 @@ pub const msghdr_const = switch (native_os) {
4110 /// scatter/gather array4110 /// scatter/gather array
4111 iov: [*]const iovec_const,4111 iov: [*]const iovec_const,
4112 /// # elements in iov4112 /// # elements in iov
4113 iovlen: i32,4113 iovlen: u32,
4114 /// ancillary data4114 /// ancillary data
4115 control: ?*const anyopaque,4115 control: ?*const anyopaque,
4116 /// ancillary data buffer len4116 /// ancillary data buffer len
...@@ -4122,7 +4122,7 @@ pub const msghdr_const = switch (native_os) {...@@ -4122,7 +4122,7 @@ pub const msghdr_const = switch (native_os) {
4122 name: ?*const anyopaque,4122 name: ?*const anyopaque,
4123 namelen: socklen_t,4123 namelen: socklen_t,
4124 iov: [*]const iovec,4124 iov: [*]const iovec,
4125 iovlen: c_int,4125 iovlen: c_uint,
4126 control: ?*const anyopaque,4126 control: ?*const anyopaque,
4127 controllen: socklen_t,4127 controllen: socklen_t,
4128 flags: c_int,4128 flags: c_int,
lib/std/net.zig+1-1
...@@ -2125,7 +2125,7 @@ pub const Stream = struct {...@@ -2125,7 +2125,7 @@ pub const Stream = struct {
2125 return .{ .handle = w.file_writer.file.handle };2125 return .{ .handle = w.file_writer.file.handle };
2126 }2126 }
21272127
2128 fn addBuf(v: []posix.iovec_const, i: *usize, bytes: []const u8) void {2128 fn addBuf(v: []posix.iovec_const, i: *@FieldType(posix.msghdr_const, "iovlen"), bytes: []const u8) void {
2129 // OS checks ptr addr before length so zero length vectors must be omitted.2129 // OS checks ptr addr before length so zero length vectors must be omitted.
2130 if (bytes.len == 0) return;2130 if (bytes.len == 0) return;
2131 if (v.len - i.* == 0) return;2131 if (v.len - i.* == 0) return;