From 3be7ee750fd0d31d6e995140025e0d18e6aa788e Mon Sep 17 00:00:00 2001 From: fanquake Date: Tue, 28 Jun 2022 17:37:32 +0100 Subject: [PATCH] compat: document error-code mapping See: https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2 --- src/compat/compat.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/compat/compat.h b/src/compat/compat.h index 633aa6f3b57..670da9a6313 100644 --- a/src/compat/compat.h +++ b/src/compat/compat.h @@ -37,9 +37,12 @@ #include #endif +// We map Linux / BSD error functions and codes, to the equivalent +// Windows definitions, and use the WSA* names throughout our code. +// Note that glibc defines EWOULDBLOCK as EAGAIN (see errno.h). #ifndef WIN32 typedef unsigned int SOCKET; -#include +#include #define WSAGetLastError() errno #define WSAEINVAL EINVAL #define WSAEWOULDBLOCK EWOULDBLOCK @@ -51,14 +54,13 @@ typedef unsigned int SOCKET; #define INVALID_SOCKET (SOCKET)(~0) #define SOCKET_ERROR -1 #else -#ifndef WSAEAGAIN +// WSAEAGAIN doesn't exist on Windows #ifdef EAGAIN #define WSAEAGAIN EAGAIN #else #define WSAEAGAIN WSAEWOULDBLOCK #endif #endif -#endif // Windows doesn't define S_IRUSR or S_IWUSR. We define both // here, with the same values as glibc (see stat.h).