Home | History | Annotate | Download | only in include
      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