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#define _inline __inline 19#endif 20 21#include <ws2tcpip.h> 22 23/* Check if ws2tcpip.h is a recent version which provides getaddrinfo() */ 24#if defined(GetAddrInfo) 25#include <wspiapi.h> 26#define HAVE_GETADDRINFO 27#endif 28#endif 29 30#if defined( __MINGW32__ ) || defined( _MSC_VER ) 31/* Include <errno.h> here to ensure that it doesn't get included later 32 * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */ 33#include <errno.h> 34#undef EWOULDBLOCK 35#endif 36 37#if !defined SOCKLEN_T 38#define SOCKLEN_T int 39#endif 40 41#define EWOULDBLOCK WSAEWOULDBLOCK 42#define ESHUTDOWN WSAESHUTDOWN 43 44#if (!defined(_MSC_VER) || (_MSC_VER < 1600)) 45#define EINPROGRESS WSAEINPROGRESS 46#define EALREADY WSAEALREADY 47#define ENOTSOCK WSAENOTSOCK 48#define EDESTADDRREQ WSAEDESTADDRREQ 49#define EMSGSIZE WSAEMSGSIZE 50#define EPROTOTYPE WSAEPROTOTYPE 51#define ENOPROTOOPT WSAENOPROTOOPT 52#define EPROTONOSUPPORT WSAEPROTONOSUPPORT 53#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT 54#define EOPNOTSUPP WSAEOPNOTSUPP 55#define EPFNOSUPPORT WSAEPFNOSUPPORT 56#define EAFNOSUPPORT WSAEAFNOSUPPORT 57#define EADDRINUSE WSAEADDRINUSE 58#define EADDRNOTAVAIL WSAEADDRNOTAVAIL 59#define ENETDOWN WSAENETDOWN 60#define ENETUNREACH WSAENETUNREACH 61#define ENETRESET WSAENETRESET 62#define ECONNABORTED WSAECONNABORTED 63#define ECONNRESET WSAECONNRESET 64#define ENOBUFS WSAENOBUFS 65#define EISCONN WSAEISCONN 66#define ENOTCONN WSAENOTCONN 67#define ETOOMANYREFS WSAETOOMANYREFS 68#define ETIMEDOUT WSAETIMEDOUT 69#define ECONNREFUSED WSAECONNREFUSED 70#define ELOOP WSAELOOP 71#define EHOSTDOWN WSAEHOSTDOWN 72#define EHOSTUNREACH WSAEHOSTUNREACH 73#define EPROCLIM WSAEPROCLIM 74#define EUSERS WSAEUSERS 75#define EDQUOT WSAEDQUOT 76#define ESTALE WSAESTALE 77#define EREMOTE WSAEREMOTE 78/* These cause conflicts with the codes from errno.h. Since they are 79 not used in the relevant code (nanoftp, nanohttp), we can leave 80 them disabled. 81#define ENAMETOOLONG WSAENAMETOOLONG 82#define ENOTEMPTY WSAENOTEMPTY 83*/ 84#endif /* _MSC_VER */ 85 86#endif /* __XML_WSOCKCOMPAT_H__ */ 87