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
This commit is contained in:
Lee Salzman
2008-12-01 22:58:45 +00:00
parent 63d9c513df
commit 04256b5d33
+10 -5
View File
@@ -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);
}
}