Compile with IPv6 support by default
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 3 Aug 2015 16:25:36 +0000 (16:25 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 3 Aug 2015 16:25:36 +0000 (16:25 +0000)
Invert logic of SUPPORTIPV6 define by changing to NOSUPPORTIPV6.

Include commented-out entry in makefile to allow for disabling IPv6
support should the user be burdened by their operating system.

From: Jeremy Visser <jeremy@visser.name>

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@12217 d7cf8633-e32d-0410-b094-e92efae38249

BSDmakefile
lhnet.c
makefile
makefile.inc
netconn.c

index eb135ce..d13013b 100644 (file)
@@ -171,6 +171,9 @@ LDFLAGS_SDL+=$(LDFLAGS_UNIXSDL_PRELOAD)
 CFLAGS_PRELOAD=$(CFLAGS_UNIX_PRELOAD)
 .endif
 
+CFLAGS_NET=
+# Systems without IPv6 support should uncomment this:
+#CFLAGS_NET+=-DNOSUPPORTIPV6
 
 ##### BSD Make specific definitions #####
 
diff --git a/lhnet.c b/lhnet.c
index e2ded86..20781f8 100644 (file)
--- a/lhnet.c
+++ b/lhnet.c
@@ -5,7 +5,7 @@
 #ifdef _MSC_VER
 #pragma comment(lib, "ws2_32.lib")
 #endif
-# ifdef SUPPORTIPV6
+# ifndef NOSUPPORTIPV6
 // Windows XP or higher is required for getaddrinfo, but the inclusion of wspiapi provides fallbacks for older versions
 # define _WIN32_WINNT 0x0501
 # endif
@@ -33,7 +33,7 @@
 #include <netdb.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
 #include <net/if.h>
 #endif
 #endif
@@ -97,7 +97,7 @@ typedef struct lhnetaddressnative_s
        {
                struct sockaddr sock;
                struct sockaddr_in in;
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
                struct sockaddr_in6 in6;
 #endif
        }
@@ -139,7 +139,7 @@ int LHNETADDRESS_FromPort(lhnetaddress_t *vaddress, lhnetaddresstype_t addressty
                address->addr.in.sin_family = AF_INET;
                address->addr.in.sin_port = htons((unsigned short)port);
                return 1;
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        case LHNETADDRESSTYPE_INET6:
                // [0:0:0:0:0:0:0:0]:port  (IN6ADDR_ANY, binds to all interfaces)
                memset(address, 0, sizeof(*address));
@@ -153,7 +153,7 @@ int LHNETADDRESS_FromPort(lhnetaddress_t *vaddress, lhnetaddresstype_t addressty
        return 0;
 }
 
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
 static int LHNETADDRESS_Resolve(lhnetaddressnative_t *address, const char *name, int port)
 {
        char port_buff [16];
@@ -453,7 +453,7 @@ int LHNETADDRESS_FromString(lhnetaddress_t *vaddress, const char *string, int de
                address->port = port;
                if (address->addresstype == LHNETADDRESSTYPE_INET6)
                {
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
                        address->addr.in6.sin6_port = htons((unsigned short)port);
                        return 1;
 #endif
@@ -471,7 +471,7 @@ int LHNETADDRESS_FromString(lhnetaddress_t *vaddress, const char *string, int de
        {
                if (hostentry->h_addrtype == AF_INET6)
                {
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
                        // great it worked
                        address->addresstype = LHNETADDRESSTYPE_INET6;
                        address->port = port;
@@ -579,7 +579,7 @@ int LHNETADDRESS_ToString(const lhnetaddress_t *vaddress, char *string, int stri
                        }
                }
                break;
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        case LHNETADDRESSTYPE_INET6:
                a = (const unsigned char *)(&address->addr.in6.sin6_addr);
                if (includeport)
@@ -614,7 +614,7 @@ int LHNETADDRESS_GetAddressType(const lhnetaddress_t *address)
 
 const char *LHNETADDRESS_GetInterfaceName(const lhnetaddress_t *vaddress, char *ifname, size_t ifnamelength)
 {
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        lhnetaddressnative_t *address = (lhnetaddressnative_t *)vaddress;
 
        if (address && address->addresstype == LHNETADDRESSTYPE_INET6)
@@ -659,7 +659,7 @@ int LHNETADDRESS_SetPort(lhnetaddress_t *vaddress, int port)
        case LHNETADDRESSTYPE_INET4:
                address->addr.in.sin_port = htons((unsigned short)port);
                return 1;
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        case LHNETADDRESSTYPE_INET6:
                address->addr.in6.sin6_port = htons((unsigned short)port);
                return 1;
@@ -691,7 +691,7 @@ int LHNETADDRESS_Compare(const lhnetaddress_t *vaddress1, const lhnetaddress_t *
                if (address1->port != address2->port)
                        return -1;
                return 0;
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        case LHNETADDRESSTYPE_INET6:
                if (address1->addr.in6.sin6_family != address2->addr.in6.sin6_family)
                        return 1;
@@ -912,14 +912,14 @@ lhnetsocket_t *LHNET_OpenSocket_Connectionless(lhnetaddress_t *address)
                        }
                        break;
                case LHNETADDRESSTYPE_INET4:
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
                case LHNETADDRESSTYPE_INET6:
 #endif
 #ifdef WIN32
                        if (lhnet_didWSAStartup)
                        {
 #endif
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
                                if ((lhnetsocket->inetsocket = socket(address->addresstype == LHNETADDRESSTYPE_INET6 ? PF_INET6 : PF_INET, SOCK_DGRAM, IPPROTO_UDP)) != -1)
 #else
                                if ((lhnetsocket->inetsocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) != -1)
@@ -972,7 +972,7 @@ lhnetsocket_t *LHNET_OpenSocket_Connectionless(lhnetaddress_t *address)
                                                        }
 #endif
 
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
                                                        if (address->addresstype == LHNETADDRESSTYPE_INET6)
                                                        {
                                                                namelen = sizeof(localaddress->addr.in6);
@@ -1155,7 +1155,7 @@ int LHNET_Read(lhnetsocket_t *lhnetsocket, void *content, int maxcontentlength,
                        Con_DPrintf("LHNET_Read: recvfrom returned error: %s\n", LHNETPRIVATE_StrError());
                }
        }
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        else if (lhnetsocket->address.addresstype == LHNETADDRESSTYPE_INET6)
        {
                SOCKLEN_T inetaddresslength;
@@ -1223,7 +1223,7 @@ int LHNET_Write(lhnetsocket_t *lhnetsocket, const void *content, int contentleng
                        Con_DPrintf("LHNET_Write: sendto returned error: %s\n", LHNETPRIVATE_StrError());
                }
        }
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        else if (lhnetsocket->address.addresstype == LHNETADDRESSTYPE_INET6)
        {
                value = sendto(lhnetsocket->inetsocket, (char *)content, contentlength, 0, (struct sockaddr *)&address->addr.in6, sizeof(struct sockaddr_in6));
index bbd0a76..970064c 100644 (file)
--- a/makefile
+++ b/makefile
@@ -402,6 +402,10 @@ ifdef DP_PRELOAD_DEPENDENCIES
 endif
 endif
 
+CFLAGS_NET=
+# Systems without IPv6 support should uncomment this:
+#CFLAGS_NET+=-DNOSUPPORTIPV6
+
 ##### GNU Make specific definitions #####
 
 DO_LD=$(CC) -o ../../../$@ $^ $(LDFLAGS)
index c7e98d2..a0afbf2 100644 (file)
@@ -172,7 +172,7 @@ OBJ_SDL= builddate.c sys_sdl.o vid_sdl.o thread_sdl.o $(OBJ_MENU) $(OBJ_SND_COMM
 
 
 # Compilation
-CFLAGS_COMMON=$(CFLAGS_MAKEDEP) $(CFLAGS_PRELOAD) $(CFLAGS_FS) $(CFLAGS_WARNINGS) $(CFLAGS_LIBZ) $(CFLAGS_LIBJPEG) $(CFLAGS_D3D) -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../
+CFLAGS_COMMON=$(CFLAGS_MAKEDEP) $(CFLAGS_PRELOAD) $(CFLAGS_FS) $(CFLAGS_WARNINGS) $(CFLAGS_LIBZ) $(CFLAGS_LIBJPEG) $(CFLAGS_D3D) $(CFLAGS_NET) -D_FILE_OFFSET_BITS=64 -D__KERNEL_STRICT_NAMES -I../../../
 CFLAGS_CLIENT=-DCONFIG_MENU -DCONFIG_CD $(CFLAGS_VIDEO_CAPTURE)
 CFLAGS_SERVER=
 CFLAGS_DEBUG=-ggdb
index 9b53ed3..0d5c5a9 100755 (executable)
--- a/netconn.c
+++ b/netconn.c
@@ -47,7 +47,7 @@ static cvar_t sv_masters [] =
        {0, "sv_masterextra1", "69.59.212.88", "ghdigital.com - default master server 1 (admin: LordHavoc)"}, // admin: LordHavoc
        {0, "sv_masterextra2", "107.161.23.68", "dpmaster.deathmask.net - default master server 2 (admin: Willis)"}, // admin: Willis
        {0, "sv_masterextra3", "92.62.40.73", "dpmaster.tchr.no - default master server 3 (admin: tChr)"}, // admin: tChr
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        {0, "sv_masterextra4", "[2a03:4000:2:225::51:334d]:27950", "dpmaster.sudo.rm-f.org - default master server 4 (admin: divVerent)"}, // admin: divVerent
        {0, "sv_masterextra5", "[2604:180::4ac:98c1]:27950", "dpmaster.deathmask.net - default master server 5 ipv6 address of dpmaster.deathmask.net (admin: Willis)"}, // admin: Willis
 #endif
@@ -1000,7 +1000,7 @@ void NetConn_OpenClientPorts(void)
                Con_Printf("Client using port %i\n", port);
        NetConn_OpenClientPort(NULL, LHNETADDRESSTYPE_LOOP, 2);
        NetConn_OpenClientPort(net_address.string, LHNETADDRESSTYPE_INET4, port);
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
        NetConn_OpenClientPort(net_address_ipv6.string, LHNETADDRESSTYPE_INET6, port);
 #endif
 }
@@ -1072,7 +1072,7 @@ void NetConn_OpenServerPorts(int opennetports)
                NetConn_OpenServerPort(NULL, LHNETADDRESSTYPE_LOOP, 1, 1);
        if (opennetports)
        {
-#ifdef SUPPORTIPV6
+#ifndef NOSUPPORTIPV6
                qboolean ip4success = NetConn_OpenServerPort(net_address.string, LHNETADDRESSTYPE_INET4, port, 100);
                NetConn_OpenServerPort(net_address_ipv6.string, LHNETADDRESSTYPE_INET6, port, ip4success ? 1 : 100);
 #else