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