diff --git a/src/pqi/pqinetwork.cc b/src/pqi/pqinetwork.cc index 57858cf94..c7e5bff1e 100644 --- a/src/pqi/pqinetwork.cc +++ b/src/pqi/pqinetwork.cc @@ -476,6 +476,14 @@ int unix_getsockopt_error(int sockfd, int *err) return ret; } +int rs_socket_error() +{ +#ifdef WINDOWS_SYS // ie WINDOWS. + return WinToUnixError(WSAGetLastError()); +#else + return errno; +#endif +} /******************* WINDOWS SPECIFIC PART ******************/ #ifdef WINDOWS_SYS // ie WINDOWS. @@ -490,7 +498,7 @@ int WinToUnixError(int error) return EINPROGRESS; break; case WSAEWOULDBLOCK: - return EINPROGRESS; + return EWOULDBLOCK; break; case WSAENETUNREACH: return ENETUNREACH; diff --git a/src/pqi/pqinetwork.h b/src/pqi/pqinetwork.h index 9519bf197..cf9930b47 100644 --- a/src/pqi/pqinetwork.h +++ b/src/pqi/pqinetwork.h @@ -105,6 +105,8 @@ int unix_fcntl_nonblock(int sockfd); int unix_connect(int sockfd, const sockaddr_storage& serv_addr); int unix_getsockopt_error(int sockfd, int *err); +int rs_socket_error(); + #ifdef WINDOWS_SYS // WINDOWS /******************* WINDOWS SPECIFIC PART ******************/ RS_DEPRECATED_FOR("use std::error_condition instead")