From 60f77488531e24be2442da573d6f69d6148ad18e Mon Sep 17 00:00:00 2001 From: cloudwalk Date: Thu, 8 Oct 2020 12:54:27 +0000 Subject: [PATCH] netconn: Move the timeout checks to new function SV_CheckTimeouts git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@13006 d7cf8633-e32d-0410-b094-e92efae38249 --- netconn.c | 9 --------- sv_main.c | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/netconn.c b/netconn.c index 234eec60..1b48ac69 100755 --- a/netconn.c +++ b/netconn.c @@ -3610,15 +3610,6 @@ void NetConn_ServerFrame(void) for (i = 0;i < sv_numsockets;i++) while (sv_sockets[i] && (length = NetConn_Read(sv_sockets[i], readbuffer, sizeof(readbuffer), &peeraddress)) > 0) NetConn_ServerParsePacket(sv_sockets[i], readbuffer, length, &peeraddress); - for (i = 0, host_client = svs.clients;i < svs.maxclients;i++, host_client++) - { - // never timeout loopback connections - if (host_client->netconnection && host.realtime > host_client->netconnection->timeout && LHNETADDRESS_GetAddressType(&host_client->netconnection->peeraddress) != LHNETADDRESSTYPE_LOOP) - { - Con_Printf("Client \"%s\" connection timed out\n", host_client->name); - SV_DropClient(false); - } - } } void NetConn_SleepMicroseconds(int microseconds) diff --git a/sv_main.c b/sv_main.c index 9f2a3f1f..a5fc047f 100644 --- a/sv_main.c +++ b/sv_main.c @@ -2403,6 +2403,21 @@ static void SV_VM_Setup(void) SV_Prepare_CSQC(); } +static void SV_CheckTimeouts(void) +{ + int i; + + // never timeout loopback connections + for (i = (host_isclient.integer ? 1 : 0), host_client = &svs.clients[i]; i < svs.maxclients; i++, host_client++) + { + if (host_client->netconnection && host.realtime > host_client->netconnection->timeout) + { + Con_Printf("Client \"%s\" connection timed out\n", host_client->name); + SV_DropClient(false); + } + } +} + extern cvar_t host_maxwait; extern cvar_t host_framerate; extern cvar_t cl_maxphysicsframesperserverframe; @@ -2456,7 +2471,10 @@ double SV_Frame(double time) * be undersleeping due to select() detecting a new packet */ if (sv.active) + { NetConn_ServerFrame(); + SV_CheckTimeouts(); + } } /* @@ -2635,7 +2653,10 @@ static int SV_ThreadFunc(void *voiddata) // get new packets if (sv.active) + { NetConn_ServerFrame(); + SV_CheckTimeouts(); + } // if the accumulators haven't become positive yet, wait a while wait = sv_timer * -1000000.0; -- 2.39.2