| 56 | } |
| 57 | |
| 58 | bool WSARecvFrom(Socket& s, const WSABUF buffers[], DWORD bufferCount, DWORD* pNumberOfBytesRecvd, DWORD* pFlags, sockaddr_in& from, int& fromLen, WSAOVERLAPPED* pOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE pCompletionRoutine) |
| 59 | { |
| 60 | if (::WSARecvFrom(s.get(), const_cast<WSABUF*>(buffers), bufferCount, pNumberOfBytesRecvd, pFlags, reinterpret_cast<sockaddr*>(&from), &fromLen, pOverlapped, pCompletionRoutine) != SOCKET_ERROR) |
| 61 | return true; |
| 62 | |
| 63 | auto err = WSAGetLastError(); |
| 64 | if (err != WSA_IO_PENDING) |
| 65 | ThrowWin32Error(err, "WSARecvFrom"); |
| 66 | return false; |
| 67 | } |
| 68 | |
| 69 | DWORD WSAGetOverlappedResult(Socket& s, WSAOVERLAPPED& overlapped, bool wait, DWORD& flags) |
| 70 | { |
no test coverage detected