| ... | ... | @@ -11846,7 +11846,10 @@ fn netListenUnixWindows( |
| 11846 | 11846 | var syscall: AlertableSyscall = try .start(); |
| 11847 | 11847 | while (true) { |
| 11848 | 11848 | const rc = ws2_32.bind(socket_handle, &storage.any, addr_len); |
| 11849 | | if (rc != ws2_32.SOCKET_ERROR) break; |
| 11849 | if (rc != ws2_32.SOCKET_ERROR) { |
| 11850 | syscall.finish(); |
| 11851 | break; |
| 11852 | } |
| 11850 | 11853 | switch (ws2_32.WSAGetLastError()) { |
| 11851 | 11854 | .NOTINITIALISED => { |
| 11852 | 11855 | syscall.finish(); |
| ... | ... | @@ -11869,15 +11872,18 @@ fn netListenUnixWindows( |
| 11869 | 11872 | } |
| 11870 | 11873 | } |
| 11871 | 11874 | |
| 11875 | syscall = try .start(); |
| 11872 | 11876 | while (true) { |
| 11873 | | try syscall.checkCancel(); |
| 11874 | 11877 | const rc = ws2_32.listen(socket_handle, options.kernel_backlog); |
| 11875 | 11878 | if (rc != ws2_32.SOCKET_ERROR) { |
| 11876 | 11879 | syscall.finish(); |
| 11877 | 11880 | return socket_handle; |
| 11878 | 11881 | } |
| 11879 | 11882 | switch (ws2_32.WSAGetLastError()) { |
| 11880 | | .EINTR, .ECANCELLED, .E_CANCELLED, .OPERATION_ABORTED => continue, |
| 11883 | .EINTR, .ECANCELLED, .E_CANCELLED, .OPERATION_ABORTED => { |
| 11884 | try syscall.checkCancel(); |
| 11885 | continue; |
| 11886 | }, |
| 11881 | 11887 | .NOTINITIALISED => { |
| 11882 | 11888 | syscall.finish(); |
| 11883 | 11889 | try initializeWsa(t); |
| ... | ... | @@ -12160,9 +12166,12 @@ fn setSocketOption(fd: posix.fd_t, level: i32, opt_name: u32, option: u32) !void |
| 12160 | 12166 | fn setSocketOptionWsa(t: *Threaded, socket: Io.net.Socket.Handle, level: i32, opt_name: u32, option: u32) !void { |
| 12161 | 12167 | const o: []const u8 = @ptrCast(&option); |
| 12162 | 12168 | var syscall: AlertableSyscall = try .start(); |
| 12163 | | const rc = ws2_32.setsockopt(socket, level, @bitCast(opt_name), o.ptr, @intCast(o.len)); |
| 12164 | 12169 | while (true) { |
| 12165 | | if (rc != ws2_32.SOCKET_ERROR) return syscall.finish(); |
| 12170 | const rc = ws2_32.setsockopt(socket, level, @bitCast(opt_name), o.ptr, @intCast(o.len)); |
| 12171 | if (rc != ws2_32.SOCKET_ERROR) { |
| 12172 | syscall.finish(); |
| 12173 | return; |
| 12174 | } |
| 12166 | 12175 | switch (ws2_32.WSAGetLastError()) { |
| 12167 | 12176 | .EINTR, .ECANCELLED, .E_CANCELLED, .OPERATION_ABORTED => { |
| 12168 | 12177 | try syscall.checkCancel(); |
| ... | ... | @@ -12175,7 +12184,9 @@ fn setSocketOptionWsa(t: *Threaded, socket: Io.net.Socket.Handle, level: i32, op |
| 12175 | 12184 | continue; |
| 12176 | 12185 | }, |
| 12177 | 12186 | .ENETDOWN => return syscall.fail(error.NetworkDown), |
| 12178 | | .EFAULT, .ENOTSOCK, .EINVAL => |err| return syscall.wsaErrorBug(err), |
| 12187 | .EFAULT => |err| return syscall.wsaErrorBug(err), |
| 12188 | .ENOTSOCK => |err| return syscall.wsaErrorBug(err), |
| 12189 | .EINVAL => |err| return syscall.wsaErrorBug(err), |
| 12179 | 12190 | else => |err| return syscall.unexpectedWsaError(err), |
| 12180 | 12191 | } |
| 12181 | 12192 | } |
| ... | ... | @@ -12313,7 +12324,10 @@ fn netConnectUnixWindows( |
| 12313 | 12324 | var syscall: AlertableSyscall = try .start(); |
| 12314 | 12325 | while (true) { |
| 12315 | 12326 | const rc = ws2_32.connect(socket_handle, &storage.any, addr_len); |
| 12316 | | if (rc != ws2_32.SOCKET_ERROR) break; |
| 12327 | if (rc != ws2_32.SOCKET_ERROR) { |
| 12328 | syscall.finish(); |
| 12329 | break; |
| 12330 | } |
| 12317 | 12331 | switch (ws2_32.WSAGetLastError()) { |
| 12318 | 12332 | .EINTR, .ECANCELLED, .E_CANCELLED, .OPERATION_ABORTED => { |
| 12319 | 12333 | try syscall.checkCancel(); |
| ... | ... | @@ -12326,14 +12340,14 @@ fn netConnectUnixWindows( |
| 12326 | 12340 | continue; |
| 12327 | 12341 | }, |
| 12328 | 12342 | .ECONNREFUSED => return syscall.fail(error.FileNotFound), |
| 12329 | | .EFAULT => |err| return syscall.wsaErrorBug(err), |
| 12330 | | .EINVAL => |err| return syscall.wsaErrorBug(err), |
| 12331 | | .EISCONN => |err| return syscall.wsaErrorBug(err), |
| 12332 | | .ENOTSOCK => |err| return syscall.wsaErrorBug(err), |
| 12333 | 12343 | .EWOULDBLOCK => return syscall.fail(error.WouldBlock), |
| 12334 | 12344 | .EACCES => return syscall.fail(error.AccessDenied), |
| 12335 | 12345 | .ENOBUFS => return syscall.fail(error.SystemResources), |
| 12336 | 12346 | .EAFNOSUPPORT => return syscall.fail(error.AddressFamilyUnsupported), |
| 12347 | .EFAULT => |err| return syscall.wsaErrorBug(err), |
| 12348 | .EINVAL => |err| return syscall.wsaErrorBug(err), |
| 12349 | .EISCONN => |err| return syscall.wsaErrorBug(err), |
| 12350 | .ENOTSOCK => |err| return syscall.wsaErrorBug(err), |
| 12337 | 12351 | else => |err| return syscall.unexpectedWsaError(err), |
| 12338 | 12352 | } |
| 12339 | 12353 | } |