15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* include/wsockcompat.h 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Windows -> Berkeley Sockets compatibility things. 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined __XML_WSOCKCOMPAT_H__ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define __XML_WSOCKCOMPAT_H__ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef _WIN32_WCE 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <winsock.h> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef HAVE_ERRNO_H 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <winsock2.h> 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* the following is a workaround a problem for 'inline' keyword in said 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) header when compiled with Borland C++ 6 */ 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__BORLANDC__) && !defined(__cplusplus) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define inline __inline 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _inline __inline 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <ws2tcpip.h> 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Check if ws2tcpip.h is a recent version which provides getaddrinfo() */ 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(GetAddrInfo) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <wspiapi.h> 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define HAVE_GETADDRINFO 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __MINGW32__ 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Include <errno.h> here to ensure that it doesn't get included later 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (e.g. by iconv.h) and overwrites the definition of EWOULDBLOCK. */ 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <errno.h> 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef EWOULDBLOCK 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined SOCKLEN_T 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SOCKLEN_T int 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EWOULDBLOCK WSAEWOULDBLOCK 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EINPROGRESS WSAEINPROGRESS 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EALREADY WSAEALREADY 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOTSOCK WSAENOTSOCK 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EDESTADDRREQ WSAEDESTADDRREQ 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EMSGSIZE WSAEMSGSIZE 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EPROTOTYPE WSAEPROTOTYPE 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOPROTOOPT WSAENOPROTOOPT 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EPROTONOSUPPORT WSAEPROTONOSUPPORT 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EOPNOTSUPP WSAEOPNOTSUPP 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EPFNOSUPPORT WSAEPFNOSUPPORT 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EAFNOSUPPORT WSAEAFNOSUPPORT 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EADDRINUSE WSAEADDRINUSE 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EADDRNOTAVAIL WSAEADDRNOTAVAIL 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENETDOWN WSAENETDOWN 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENETUNREACH WSAENETUNREACH 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENETRESET WSAENETRESET 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ECONNABORTED WSAECONNABORTED 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ECONNRESET WSAECONNRESET 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOBUFS WSAENOBUFS 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EISCONN WSAEISCONN 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOTCONN WSAENOTCONN 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ESHUTDOWN WSAESHUTDOWN 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ETOOMANYREFS WSAETOOMANYREFS 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ETIMEDOUT WSAETIMEDOUT 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ECONNREFUSED WSAECONNREFUSED 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ELOOP WSAELOOP 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EHOSTDOWN WSAEHOSTDOWN 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EHOSTUNREACH WSAEHOSTUNREACH 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EPROCLIM WSAEPROCLIM 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EUSERS WSAEUSERS 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EDQUOT WSAEDQUOT 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ESTALE WSAESTALE 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EREMOTE WSAEREMOTE 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* These cause conflicts with the codes from errno.h. Since they are 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) not used in the relevant code (nanoftp, nanohttp), we can leave 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) them disabled. 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENAMETOOLONG WSAENAMETOOLONG 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOTEMPTY WSAENOTEMPTY 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __XML_WSOCKCOMPAT_H__ */ 84