Data Transfer
| 170 | |
| 171 | // Data Transfer |
| 172 | ssize_t send(int sockfd, const void *buf, size_t len, int flags) FL_NOEXCEPT { |
| 173 | SOCKET sock = static_cast<SOCKET>(sockfd); |
| 174 | int result = ::send(sock, static_cast<const char*>(buf), static_cast<int>(len), flags); |
| 175 | if (result == SOCKET_ERROR) { |
| 176 | // Capture Windows error immediately before it can be overwritten |
| 177 | int wsa_error = WSAGetLastError(); |
| 178 | // Set errno so error_code::from_errno() can translate it |
| 179 | errno = translate_windows_error(wsa_error); |
| 180 | return -1; |
| 181 | } |
| 182 | return static_cast<ssize_t>(result); |
| 183 | } |
| 184 | |
| 185 | ssize_t recv(int sockfd, void *buf, size_t len, int flags) FL_NOEXCEPT { |
| 186 | SOCKET sock = static_cast<SOCKET>(sockfd); |
no test coverage detected