From 2c6788d7de19653a5e7eee1117cc5b88545dc17f Mon Sep 17 00:00:00 2001 From: daurnimator Date: Tue, 19 Nov 2019 16:40:44 +1100 Subject: [PATCH] std: add windows.closesocket --- lib/std/os/windows.zig | 10 ++++++++++ lib/std/os/windows/ws2_32.zig | 1 + 2 files changed, 11 insertions(+) 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,