From 04256b5d33f7c399aa0bdbae14545e6fd8ca0bc5 Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Mon, 1 Dec 2008 22:58:45 +0000 Subject: [PATCH] don't error out if lan socket creation fails git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@3818 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/serverms.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/source/src/serverms.cpp b/source/src/serverms.cpp index c881c023..7da2b851 100644 --- a/source/src/serverms.cpp +++ b/source/src/serverms.cpp @@ -164,9 +164,14 @@ void serverms(int mode, int numplayers, int minremain, char *smapname, int milli static ENetSocketSet sockset; ENET_SOCKETSET_EMPTY(sockset); + ENetSocket maxsock = pongsock; ENET_SOCKETSET_ADD(sockset, pongsock); - ENET_SOCKETSET_ADD(sockset, lansock); - if(enet_socketset_select(max(pongsock, lansock), &sockset, NULL, 0) <= 0) return; + if(lansock != ENET_SOCKET_NULL) + { + maxsock = max(maxsock, lansock); + ENET_SOCKETSET_ADD(sockset, lansock); + } + if(enet_socketset_select(maxsock, &sockset, NULL, 0) <= 0) return; // reply all server info requests ENetBuffer buf; @@ -178,7 +183,7 @@ void serverms(int mode, int numplayers, int minremain, char *smapname, int milli loopi(2) { ENetSocket sock = i ? lansock : pongsock; - if(!ENET_SOCKETSET_CHECK(sockset, sock)) continue; + if(sock == ENET_SOCKET_NULL || !ENET_SOCKETSET_CHECK(sockset, sock)) continue; buf.dataLength = sizeof(data); len = enet_socket_receive(sock, &addr, &buf, 1); @@ -266,7 +271,7 @@ void servermsinit(const char *master, const char *ip, int infoport, const char * ENetAddress address = { ENET_HOST_ANY, infoport }; if(*ip) { - if(enet_address_set_host(&address, ip)<0) printf("WARNING: server ip not resolved"); + if(enet_address_set_host(&address, ip)<0) printf("WARNING: server ip not resolved\n"); else msaddress.host = address.host; } pongsock = enet_socket_create(ENET_SOCKET_TYPE_DATAGRAM); @@ -284,7 +289,7 @@ void servermsinit(const char *master, const char *ip, int infoport, const char * enet_socket_destroy(lansock); lansock = ENET_SOCKET_NULL; } - if(lansock == ENET_SOCKET_NULL) fatal("could not create LAN server info socket\n"); + if(lansock == ENET_SOCKET_NULL) printf("WARNING: could not create LAN server info socket\n"); else enet_socket_set_option(lansock, ENET_SOCKOPT_NONBLOCK, 1); } }