From 68ace850e4e6a9fcb3f8b9614bc21ff5d4e28021 Mon Sep 17 00:00:00 2001 From: havoc Date: Sat, 24 Jan 2004 00:42:26 +0000 Subject: [PATCH] fix a severe bug with the checking of WSAStartup (basically any socket after the first would fail for no reason) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@3831 d7cf8633-e32d-0410-b094-e92efae38249 --- lhnet.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lhnet.c b/lhnet.c index 34052e14..998c7b08 100644 --- a/lhnet.c +++ b/lhnet.c @@ -444,17 +444,10 @@ lhnetsocket_t *LHNET_OpenSocket_Connectionless(lhnetaddress_t *address) case LHNETADDRESSTYPE_INET4: case LHNETADDRESSTYPE_INET6: #ifdef WIN32 - if (!lhnet_didWSAStartup && !WSAStartup(MAKEWORD(1, 1), &lhnet_winsockdata)) - { - lhnet_didWSAStartup = 1; -#else + if (lhnet_didWSAStartup || (lhnet_didWSAStartup = !WSAStartup(MAKEWORD(1, 1), &lhnet_winsockdata))) { #endif - if (address->addresstype == LHNETADDRESSTYPE_INET6) - lhnetsocket->inetsocket = socket(LHNETADDRESSTYPE_INET6_FAMILY, SOCK_DGRAM, IPPROTO_UDP); - else - lhnetsocket->inetsocket = socket(LHNETADDRESSTYPE_INET4_FAMILY, SOCK_DGRAM, IPPROTO_UDP); - if (lhnetsocket->inetsocket != -1) + if ((lhnetsocket->inetsocket = socket(address->addresstype == LHNETADDRESSTYPE_INET6 ? LHNETADDRESSTYPE_INET6_FAMILY : LHNETADDRESSTYPE_INET4_FAMILY, SOCK_DGRAM, IPPROTO_UDP)) != -1) { #ifdef WIN32 u_long _true = 1; @@ -485,7 +478,11 @@ lhnetsocket_t *LHNET_OpenSocket_Connectionless(lhnetaddress_t *address) } else Con_Printf("LHNET_OpenSocket_Connectionless: socket returned error: %s\n", LHNETPRIVATE_StrError()); +#ifdef WIN32 } + else + Con_Printf("LHNET_OpenSocket_Connectionless: WSAStartup failed\n"); +#endif break; default: break; -- 2.39.2