1/* include/wsockcompat.h 2 * Windows -> Berkeley Sockets compatibility things. 3 */ 4 5#if !defined __XML_WSOCKCOMPAT_H__ 6#define __XML_WSOCKCOMPAT_H__ 7 8#ifdef _WIN32_WCE 9#include <winsock.h> 10#else 11#undef HAVE_ERRNO_H 12#include <winsock2.h> 13 14/* the following is a workaround a problem for 'inline' keyword in said 15 header when compiled with Borland C++ 6 */ 16#if defined(__BORLANDC__) && !defined(__cplusplus) 17#define inline __inline 18#endif 19 20#include <ws2tcpip.h> 21 22/* Check if ws2tcpip.h is a recent version which provides getaddrinfo() */ 23#if defined(GetAddrInfo) 24#include <wspiapi.h> 25#define HAVE_GETADDRINFO 26#endif 27#endif 28 29#ifdef __MINGW32__ 30/* Include <errno.h> here to ensure that it doesn't get included later 31 * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */ 32#include <errno.h> 33#undef EWOULDBLOCK 34#endif 35 36#if !defined SOCKLEN_T 37#define SOCKLEN_T int 38#endif 39 40#define EWOULDBLOCK WSAEWOULDBLOCK 41#define EINPROGRESS WSAEINPROGRESS 42#define EALREADY WSAEALREADY 43#define ENOTSOCK WSAENOTSOCK 44#define EDESTADDRREQ WSAEDESTADDRREQ 45#define EMSGSIZE WSAEMSGSIZE 46#define EPROTOTYPE WSAEPROTOTYPE 47#define ENOPROTOOPT WSAENOPROTOOPT 48#define EPROTONOSUPPORT WSAEPROTONOSUPPORT 49#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT 50#define EOPNOTSUPP WSAEOPNOTSUPP 51#define EPFNOSUPPORT WSAEPFNOSUPPORT 52#define EAFNOSUPPORT WSAEAFNOSUPPORT 53#define EADDRINUSE WSAEADDRINUSE 54#define EADDRNOTAVAIL WSAEADDRNOTAVAIL 55#define ENETDOWN WSAENETDOWN 56#define ENETUNREACH WSAENETUNREACH 57#define ENETRESET WSAENETRESET 58#define ECONNABORTED WSAECONNABORTED 59#define ECONNRESET WSAECONNRESET 60#define ENOBUFS WSAENOBUFS 61#define EISCONN WSAEISCONN 62#define ENOTCONN WSAENOTCONN 63#define ESHUTDOWN WSAESHUTDOWN 64#define ETOOMANYREFS WSAETOOMANYREFS 65#define ETIMEDOUT WSAETIMEDOUT 66#define ECONNREFUSED WSAECONNREFUSED 67#define ELOOP WSAELOOP 68#define EHOSTDOWN WSAEHOSTDOWN 69#define EHOSTUNREACH WSAEHOSTUNREACH 70#define EPROCLIM WSAEPROCLIM 71#define EUSERS WSAEUSERS 72#define EDQUOT WSAEDQUOT 73#define ESTALE WSAESTALE 74#define EREMOTE WSAEREMOTE 75/* These cause conflicts with the codes from errno.h. Since they are 76 not used in the relevant code (nanoftp, nanohttp), we can leave 77 them disabled. 78#define ENAMETOOLONG WSAENAMETOOLONG 79#define ENOTEMPTY WSAENOTEMPTY 80*/ 81 82#endif /* __XML_WSOCKCOMPAT_H__ */ 83