| 163 | } |
| 164 | |
| 165 | void set_blocking(SOCKET socket, bool blocking) |
| 166 | { |
| 167 | CE_ENSURE(socket != INVALID_SOCKET); |
| 168 | |
| 169 | #if CROWN_PLATFORM_WINDOWS |
| 170 | u_long non_blocking = blocking ? 0 : 1; |
| 171 | int err = ioctlsocket(socket, FIONBIO, &non_blocking); |
| 172 | CE_ASSERT(err == 0, "ioctlsocket: last_error() = %d", last_error()); |
| 173 | CE_UNUSED(err); |
| 174 | #else |
| 175 | int flags = fcntl(socket, F_GETFL, 0); |
| 176 | fcntl(socket, F_SETFL, blocking ? (flags & ~O_NONBLOCK) : O_NONBLOCK); |
| 177 | #endif |
| 178 | } |
| 179 | |
| 180 | void set_reuse_address(SOCKET socket, bool reuse) |
| 181 | { |
no test coverage detected