in source/posix/socket.c [99:134]
static int s_determine_socket_error(int error) {
switch (error) {
case ECONNREFUSED:
return AWS_IO_SOCKET_CONNECTION_REFUSED;
case ETIMEDOUT:
return AWS_IO_SOCKET_TIMEOUT;
case EHOSTUNREACH:
case ENETUNREACH:
return AWS_IO_SOCKET_NO_ROUTE_TO_HOST;
case EADDRNOTAVAIL:
return AWS_IO_SOCKET_INVALID_ADDRESS;
case ENETDOWN:
return AWS_IO_SOCKET_NETWORK_DOWN;
case ECONNABORTED:
return AWS_IO_SOCKET_CONNECT_ABORTED;
case EADDRINUSE:
return AWS_IO_SOCKET_ADDRESS_IN_USE;
case ENOBUFS:
case ENOMEM:
return AWS_ERROR_OOM;
case EAGAIN:
return AWS_IO_READ_WOULD_BLOCK;
case EMFILE:
case ENFILE:
return AWS_ERROR_MAX_FDS_EXCEEDED;
case ENOENT:
case EINVAL:
return AWS_ERROR_FILE_INVALID_PATH;
case EAFNOSUPPORT:
return AWS_IO_SOCKET_UNSUPPORTED_ADDRESS_FAMILY;
case EACCES:
return AWS_ERROR_NO_PERMISSION;
default:
return AWS_IO_SOCKET_NOT_CONNECTED;
}
}