* Use IPv6 header qcommon/wspiapi.h if it has been added by the end user

* Update README to explain the Windows XP requirement
This commit is contained in:
Tim Angus 2008-08-09 19:12:30 +00:00
parent 60eb261185
commit 7edcc7d16a
3 changed files with 60 additions and 49 deletions

View file

@ -24,61 +24,68 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "../qcommon/qcommon.h"
#ifdef _WIN32
#include <winsock2.h>
#include <ws2tcpip.h>
#if WINVER < 0x501
#include <wspiapi.h>
#else
#include <ws2spi.h>
#endif
# include <winsock2.h>
# include <ws2tcpip.h>
# if WINVER < 0x501
# ifdef __MINGW32__
// wspiapi.h isn't available on MinGW, so if it's
// present it's because the end user has added it
// and we should look for it in our tree
# include "wspiapi.h"
# else
# include <wspiapi.h>
# endif
# else
# include <ws2spi.h>
# endif
typedef int socklen_t;
#ifdef ADDRESS_FAMILY
#define sa_family_t ADDRESS_FAMILY
#else
# ifdef ADDRESS_FAMILY
# define sa_family_t ADDRESS_FAMILY
# else
typedef unsigned short sa_family_t;
#endif
# endif
#define EAGAIN WSAEWOULDBLOCK
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
#define EAFNOSUPPORT WSAEAFNOSUPPORT
#define ECONNRESET WSAECONNRESET
#define socketError WSAGetLastError( )
# define EAGAIN WSAEWOULDBLOCK
# define EADDRNOTAVAIL WSAEADDRNOTAVAIL
# define EAFNOSUPPORT WSAEAFNOSUPPORT
# define ECONNRESET WSAECONNRESET
# define socketError WSAGetLastError( )
static WSADATA winsockdata;
static qboolean winsockInitialized = qfalse;
#else
#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
// needed for socklen_t on OSX 10.2
# define _BSD_SOCKLEN_T_
#endif
# if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
// needed for socklen_t on OSX 10.2
# define _BSD_SOCKLEN_T_
# endif
#include <arpa/inet.h>
#include <errno.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#if !defined(__sun) && !defined(__sgi)
#include <ifaddrs.h>
#endif
# include <arpa/inet.h>
# include <errno.h>
# include <netdb.h>
# include <netinet/in.h>
# include <sys/socket.h>
# include <net/if.h>
# include <sys/ioctl.h>
# include <sys/types.h>
# include <sys/time.h>
# include <unistd.h>
# if !defined(__sun) && !defined(__sgi)
# include <ifaddrs.h>
# endif
#ifdef __sun
#include <sys/filio.h>
#endif
# ifdef __sun
# include <sys/filio.h>
# endif
typedef int SOCKET;
#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define closesocket close
#define ioctlsocket ioctl
#define socketError errno
# define INVALID_SOCKET -1
# define SOCKET_ERROR -1
# define closesocket close
# define ioctlsocket ioctl
# define socketError errno
#endif