Commit 2c6788d7de

daurnimator <quae@daurnimator.com>
2019-11-19 06:40:44
std: add windows.closesocket
1 parent 6b5b0e6
Changed files (2)
lib
std
lib/std/os/windows/ws2_32.zig
@@ -240,6 +240,7 @@ pub extern "ws2_32" stdcallcc fn WSASocketW(
     g: GROUP,
     dwFlags: DWORD,
 ) SOCKET;
+pub extern "ws2_32" stdcallcc fn closesocket(s: SOCKET) c_int;
 pub extern "ws2_32" stdcallcc fn WSAIoctl(
     s: SOCKET,
     dwIoControlCode: DWORD,
lib/std/os/windows.zig
@@ -692,6 +692,16 @@ pub fn WSASocketW(
     return rc;
 }
 
+pub fn closesocket(s: ws2_32.SOCKET) !void {
+    switch (ws2_32.closesocket(s)) {
+        0 => {},
+        ws2_32.SOCKET_ERROR => switch (ws2_32.WSAGetLastError()) {
+            else => |err| return unexpectedWSAError(err),
+        },
+        else => unreachable,
+    }
+}
+
 pub fn WSAIoctl(
     s: ws2_32.SOCKET,
     dwIoControlCode: DWORD,