| 15 | namespace asio { |
| 16 | |
| 17 | error_code error_code::from_errno(int e) { |
| 18 | switch (e) { |
| 19 | case 0: |
| 20 | return error_code(); |
| 21 | #ifdef ECONNREFUSED |
| 22 | case ECONNREFUSED: |
| 23 | return error_code(errc::connection_refused, "connection refused"); |
| 24 | #endif |
| 25 | #ifdef ECONNRESET |
| 26 | case ECONNRESET: |
| 27 | return error_code(errc::connection_reset, "connection reset"); |
| 28 | #endif |
| 29 | #ifdef ETIMEDOUT |
| 30 | case ETIMEDOUT: |
| 31 | return error_code(errc::timed_out, "timed out"); |
| 32 | #endif |
| 33 | #ifdef EADDRINUSE |
| 34 | case EADDRINUSE: |
| 35 | return error_code(errc::address_in_use, "address in use"); |
| 36 | #endif |
| 37 | #ifdef EWOULDBLOCK |
| 38 | case EWOULDBLOCK: |
| 39 | return error_code(errc::would_block, "would block"); |
| 40 | #endif |
| 41 | // EAGAIN may equal EWOULDBLOCK on some platforms |
| 42 | #if defined(EAGAIN) && (!defined(EWOULDBLOCK) || EAGAIN != EWOULDBLOCK) |
| 43 | case EAGAIN: |
| 44 | return error_code(errc::would_block, "would block"); |
| 45 | #endif |
| 46 | default: |
| 47 | return error_code(errc::unknown, "unknown error"); |
| 48 | } |
| 49 | } |
| 50 | |
| 51 | } // namespace asio |
| 52 | } // namespace fl |