| 183 | } |
| 184 | |
| 185 | ssize_t recv(int sockfd, void *buf, size_t len, int flags) FL_NOEXCEPT { |
| 186 | SOCKET sock = static_cast<SOCKET>(sockfd); |
| 187 | int result = ::recv(sock, static_cast<char*>(buf), static_cast<int>(len), flags); |
| 188 | if (result == SOCKET_ERROR) { |
| 189 | // Capture Windows error immediately before it can be overwritten |
| 190 | int wsa_error = WSAGetLastError(); |
| 191 | // Set errno so error_code::from_errno() can translate it |
| 192 | errno = translate_windows_error(wsa_error); |
| 193 | return -1; |
| 194 | } |
| 195 | return static_cast<ssize_t>(result); |
| 196 | } |
| 197 | |
| 198 | ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, |
| 199 | const struct sockaddr *dest_addr, socklen_t addrlen) FL_NOEXCEPT { |
no test coverage detected