diff --git a/src/include/port/win32.h b/src/include/port/win32.h index 708d47ab3e..c9390d1124 100644 --- a/src/include/port/win32.h +++ b/src/include/port/win32.h @@ -267,11 +267,18 @@ typedef int pid_t; /* * Supplement to . + * + * We redefine network-related Berkeley error symbols as the corresponding WSA + * constants. This allows elog.c to recognize them as being in the Winsock + * error code range and pass them off to pgwin32_socket_strerror(), since + * Windows' version of plain strerror() won't cope. Note that this will break + * if these names are used for anything else besides Windows Sockets errors. + * See TranslateSocketError() when changing this list. */ #undef EAGAIN +#define EAGAIN WSAEWOULDBLOCK #undef EINTR #define EINTR WSAEINTR -#define EAGAIN WSAEWOULDBLOCK #undef EMSGSIZE #define EMSGSIZE WSAEMSGSIZE #undef EAFNOSUPPORT @@ -293,26 +300,6 @@ typedef int pid_t; #undef EOPNOTSUPP #define EOPNOTSUPP WSAEOPNOTSUPP -/* - * For Microsoft Visual Studio 2010 and above we intentionally redefine - * the regular Berkeley error constants and set them to the WSA constants. - * Note that this will break if those constants are used for anything else - * than Windows Sockets errors. - */ -#if _MSC_VER >= 1600 -#pragma warning(disable:4005) -#define EMSGSIZE WSAEMSGSIZE -#define EAFNOSUPPORT WSAEAFNOSUPPORT -#define EWOULDBLOCK WSAEWOULDBLOCK -#define EPROTONOSUPPORT WSAEPROTONOSUPPORT -#define ECONNRESET WSAECONNRESET -#define EINPROGRESS WSAEINPROGRESS -#define ENOBUFS WSAENOBUFS -#define ECONNREFUSED WSAECONNREFUSED -#define EOPNOTSUPP WSAEOPNOTSUPP -#pragma warning(default:4005) -#endif - /* * Extended locale functions with gratuitous underscore prefixes. * (These APIs are nevertheless fully documented by Microsoft.)