From a4d1572fe38e3f4dfbdc1f0ee0b203da099a4717 Mon Sep 17 00:00:00 2001 From: ludwig Date: Thu, 12 Jun 2008 18:32:33 +0000 Subject: bind ipv6 sockets first by binding the ipv6 sockets first it's possible to bind 0.0.0.0 and :: to the same port. git-svn-id: svn://svn.icculus.org/quake3/trunk@1386 edf5b092-35ff-0310-97b2-ce42778d08ea --- code/qcommon/net_ip.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'code/qcommon') diff --git a/code/qcommon/net_ip.c b/code/qcommon/net_ip.c index 50eddf8..dd59320 100644 --- a/code/qcommon/net_ip.c +++ b/code/qcommon/net_ip.c @@ -1329,6 +1329,27 @@ void NET_OpenIP( void ) { // automatically scan for a valid port, so multiple // dedicated servers can be started without requiring // a different net_port for each one + + if(net_enabled->integer & NET_ENABLEV6) + { + for( i = 0 ; i < 10 ; i++ ) + { + ip6_socket = NET_IP6Socket(net_ip6->string, port6 + i, &boundto, &err); + if (ip6_socket != INVALID_SOCKET) + { + Cvar_SetValue( "net_port6", port6 + i ); + break; + } + else + { + if(err == EAFNOSUPPORT) + break; + } + } + if(ip6_socket == INVALID_SOCKET) + Com_Printf( "WARNING: Couldn't bind to a v6 ip address.\n"); + } + if(net_enabled->integer & NET_ENABLEV4) { for( i = 0 ; i < 10 ; i++ ) { @@ -1351,26 +1372,6 @@ void NET_OpenIP( void ) { if(ip_socket == INVALID_SOCKET) Com_Printf( "WARNING: Couldn't bind to a v4 ip address.\n"); } - - if(net_enabled->integer & NET_ENABLEV6) - { - for( i = 0 ; i < 10 ; i++ ) - { - ip6_socket = NET_IP6Socket(net_ip6->string, port6 + i, &boundto, &err); - if (ip6_socket != INVALID_SOCKET) - { - Cvar_SetValue( "net_port6", port6 + i ); - break; - } - else - { - if(err == EAFNOSUPPORT) - break; - } - } - if(ip6_socket == INVALID_SOCKET) - Com_Printf( "WARNING: Couldn't bind to a v6 ip address.\n"); - } } -- cgit v1.2.3