X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fnetserv.c;h=4b846f9da413425db5e86999fd149111f34ea77c;hb=d2bb945e958e551ee43005160e671db37899e8cb;hp=02a014fd86f3757a6b3891bbb302b7cfb2007d1c;hpb=bb8ea93cf34a36020e63e5d4ef4263eeb49fd17c;p=rocksndiamonds.git diff --git a/src/netserv.c b/src/netserv.c index 02a014fd..4b846f9d 100644 --- a/src/netserv.c +++ b/src/netserv.c @@ -9,20 +9,16 @@ // netserv.c // ============================================================================ -#include "libgame/platform.h" - -#if defined(NETWORK_AVALIABLE) - #include #include #include #include -#include "main.h" - #include "libgame/libgame.h" #include "netserv.h" +#include "main.h" + static int clients = 0; static int onceonly = 0; @@ -133,6 +129,7 @@ static void RemovePlayer(struct NetworkServerPlayerInfo *player) free(player); clients--; +#if 0 /* do not terminate network server if last player disconnected */ if (onceonly && clients == 0) { if (options.verbose) @@ -142,6 +139,7 @@ static void RemovePlayer(struct NetworkServerPlayerInfo *player) } exit(0); } +#endif } static void AddPlayer(TCPsocket fd) @@ -591,10 +589,12 @@ void NetworkServer(int port, int serveronly) memmove(player->readbuffer, player->readbuffer + 4 + len, player->nread); buffer[0] = player->number; - if (!player->introduced && buffer[1] != OP_PLAYER_NAME) + if (!player->introduced && + buffer[1] != OP_PLAYER_NAME && + buffer[1] != OP_PROTOCOL_VERSION) { if (options.verbose) - Error(ERR_NETWORK_SERVER, "!(client %d)->introduced && buffer[1]==%d (expected OP_PLAYER_NAME)", buffer[0], buffer[1]); + Error(ERR_NETWORK_SERVER, "!(client %d)->introduced && buffer[1]==%d (expected OP_PLAYER_NAME or OP_PROTOCOL_VERSION)", buffer[0], buffer[1]); RemovePlayer(player); interrupt = 1; @@ -657,5 +657,3 @@ void NetworkServer(int port, int serveronly) } } } - -#endif /* NETWORK_AVALIABLE */