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