| 339 | } |
| 340 | |
| 341 | const char *socket_strerror(int err) { |
| 342 | if (err <= 0) return io_strerror(err); |
| 343 | switch (err) { |
| 344 | case WSAEADDRINUSE: return "address already in use"; |
| 345 | case WSAECONNREFUSED: return "connection refused"; |
| 346 | case WSAEISCONN: return "already connected"; |
| 347 | case WSAEACCES: return "permission denied"; |
| 348 | case WSAECONNABORTED: return "closed"; |
| 349 | case WSAECONNRESET: return "closed"; |
| 350 | case WSAETIMEDOUT: return "timeout"; |
| 351 | default: return wstrerror(err); |
| 352 | } |
| 353 | } |
| 354 | |
| 355 | const char *socket_ioerror(p_socket ps, int err) { |
| 356 | (void) ps; |
no test coverage detected