Edit

kc3-lang/libxml2/include/wsockcompat.h

Branch :

  • Show log

    Commit

  • Author : Daniel Veillard
    Date : 2009-03-25 09:51:19
    Hash : 48b3eb22
    Message : fixes for Borland/CodeGear/Embarcadero compilers by Eric Zurcher Daniel * include/wsockcompat.h win32/Makefile.bcb xpath.c: fixes for Borland/CodeGear/Embarcadero compilers by Eric Zurcher Daniel svn path=/trunk/; revision=3822

  • include/wsockcompat.h
  • /* include/wsockcompat.h
     * Windows -> Berkeley Sockets compatibility things.
     */
    
    #if !defined __XML_WSOCKCOMPAT_H__
    #define __XML_WSOCKCOMPAT_H__
    
    #ifdef _WIN32_WCE
    #include <winsock.h>
    #else
    #undef HAVE_ERRNO_H
    #include <winsock2.h>
    
    /* the following is a workaround a problem for 'inline' keyword in said
       header when compiled with Borland C++ 6 */
    #if defined(__BORLANDC__) && !defined(__cplusplus)
    #define inline __inline
    #define _inline __inline
    #endif
    
    #include <ws2tcpip.h>
    
    /* Check if ws2tcpip.h is a recent version which provides getaddrinfo() */
    #if defined(GetAddrInfo)
    #include <wspiapi.h>
    #define HAVE_GETADDRINFO
    #endif
    #endif
    
    #ifdef __MINGW32__
    /* Include <errno.h> here to ensure that it doesn't get included later
     * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */
    #include <errno.h>
    #undef EWOULDBLOCK
    #endif
    
    #if !defined SOCKLEN_T
    #define SOCKLEN_T int
    #endif
    
    #define EWOULDBLOCK             WSAEWOULDBLOCK
    #define EINPROGRESS             WSAEINPROGRESS
    #define EALREADY                WSAEALREADY
    #define ENOTSOCK                WSAENOTSOCK
    #define EDESTADDRREQ            WSAEDESTADDRREQ
    #define EMSGSIZE                WSAEMSGSIZE
    #define EPROTOTYPE              WSAEPROTOTYPE
    #define ENOPROTOOPT             WSAENOPROTOOPT
    #define EPROTONOSUPPORT         WSAEPROTONOSUPPORT
    #define ESOCKTNOSUPPORT         WSAESOCKTNOSUPPORT
    #define EOPNOTSUPP              WSAEOPNOTSUPP
    #define EPFNOSUPPORT            WSAEPFNOSUPPORT
    #define EAFNOSUPPORT            WSAEAFNOSUPPORT
    #define EADDRINUSE              WSAEADDRINUSE
    #define EADDRNOTAVAIL           WSAEADDRNOTAVAIL
    #define ENETDOWN                WSAENETDOWN
    #define ENETUNREACH             WSAENETUNREACH
    #define ENETRESET               WSAENETRESET
    #define ECONNABORTED            WSAECONNABORTED
    #define ECONNRESET              WSAECONNRESET
    #define ENOBUFS                 WSAENOBUFS
    #define EISCONN                 WSAEISCONN
    #define ENOTCONN                WSAENOTCONN
    #define ESHUTDOWN               WSAESHUTDOWN
    #define ETOOMANYREFS            WSAETOOMANYREFS
    #define ETIMEDOUT               WSAETIMEDOUT
    #define ECONNREFUSED            WSAECONNREFUSED
    #define ELOOP                   WSAELOOP
    #define EHOSTDOWN               WSAEHOSTDOWN
    #define EHOSTUNREACH            WSAEHOSTUNREACH
    #define EPROCLIM                WSAEPROCLIM
    #define EUSERS                  WSAEUSERS
    #define EDQUOT                  WSAEDQUOT
    #define ESTALE                  WSAESTALE
    #define EREMOTE                 WSAEREMOTE
    /* These cause conflicts with the codes from errno.h. Since they are 
       not used in the relevant code (nanoftp, nanohttp), we can leave 
       them disabled.
    #define ENAMETOOLONG            WSAENAMETOOLONG
    #define ENOTEMPTY               WSAENOTEMPTY
    */
    
    #endif /* __XML_WSOCKCOMPAT_H__ */