Skip to content

Commit 8a71f77

Browse files
committed
std: lie about windows socklen_t signed-ness
1 parent edc84e7 commit 8a71f77

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

lib/std/os/windows/ws2_32.zig

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ pub const WSAOVERLAPPED_COMPLETION_ROUTINE = extern fn (dwError: DWORD, cbTransf
110110

111111
pub const ADDRESS_FAMILY = u16;
112112

113+
// Microsoft use the signed c_int for this, but it should never be negative
114+
const socklen_t = u32;
115+
113116
pub const AF_UNSPEC = 0;
114117
pub const AF_UNIX = 1;
115118
pub const AF_INET = 2;
@@ -349,12 +352,12 @@ pub extern "ws2_32" stdcallcc fn WSAIoctl(
349352
pub extern "ws2_32" stdcallcc fn accept(
350353
s: SOCKET,
351354
addr: ?*sockaddr,
352-
addrlen: c_int,
355+
addrlen: socklen_t,
353356
) SOCKET;
354357
pub extern "ws2_32" stdcallcc fn connect(
355358
s: SOCKET,
356359
name: *const sockaddr,
357-
namelen: c_int,
360+
namelen: socklen_t,
358361
) c_int;
359362
pub extern "ws2_32" stdcallcc fn WSARecv(
360363
s: SOCKET,
@@ -372,7 +375,7 @@ pub extern "ws2_32" stdcallcc fn WSARecvFrom(
372375
lpNumberOfBytesRecvd: ?*DWORD,
373376
lpFlags: *DWORD,
374377
lpFrom: ?*sockaddr,
375-
lpFromlen: c_int,
378+
lpFromlen: socklen_t,
376379
lpOverlapped: ?*WSAOVERLAPPED,
377380
lpCompletionRoutine: ?WSAOVERLAPPED_COMPLETION_ROUTINE,
378381
) c_int;
@@ -392,7 +395,7 @@ pub extern "ws2_32" stdcallcc fn WSASendTo(
392395
lpNumberOfBytesSent: ?*DWORD,
393396
dwFlags: DWORD,
394397
lpTo: ?*const sockaddr,
395-
iTolen: c_int,
398+
iTolen: socklen_t,
396399
lpOverlapped: ?*WSAOVERLAPPED,
397400
lpCompletionRoutine: ?WSAOVERLAPPED_COMPLETION_ROUTINE,
398401
) c_int;

0 commit comments

Comments
 (0)