aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordaurnimator <quae@daurnimator.com>2019-11-19 16:40:44 +1100
committerdaurnimator <quae@daurnimator.com>2019-11-27 13:01:07 +1100
commit2c6788d7de19653a5e7eee1117cc5b88545dc17f (patch)
tree234fb9b7c72349478be5bb31090321e9bdf464bf
parent6b5b0e6cd6b46b30fc8e8379bc136175e876956b (diff)
downloadzig-2c6788d7de19653a5e7eee1117cc5b88545dc17f.tar.gz
zig-2c6788d7de19653a5e7eee1117cc5b88545dc17f.zip
std: add windows.closesocket
-rw-r--r--lib/std/os/windows.zig10
-rw-r--r--lib/std/os/windows/ws2_32.zig1
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig
index 101a2a339f..601f3a79b9 100644
--- a/lib/std/os/windows.zig
+++ b/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,
diff --git a/lib/std/os/windows/ws2_32.zig b/lib/std/os/windows/ws2_32.zig
index 0554f09705..faaaedd443 100644
--- a/lib/std/os/windows/ws2_32.zig
+++ b/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,