Skip to content

Commit

Permalink
new cvar sv_dl_timeout - timeout value for clients not in refs #29
Browse files Browse the repository at this point in the history
  • Loading branch information
IR4T4 committed Jul 26, 2012
1 parent d6ade04 commit 69561e8
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 10 deletions.
1 change: 1 addition & 0 deletions src/server/server.h
Expand Up @@ -356,6 +356,7 @@ extern cvar_t *g_gameType;

// TTimo - autodl
extern cvar_t *sv_dl_maxRate;
extern cvar_t *sv_dl_timeout;

// TTimo
extern cvar_t *sv_wwwDownload; // general flag to enable/disable www download redirects
Expand Down
3 changes: 2 additions & 1 deletion src/server/sv_init.c
Expand Up @@ -844,7 +844,8 @@ void SV_Init(void)
sv_rconPassword = Cvar_Get("rconPassword", "", CVAR_TEMP);
sv_privatePassword = Cvar_Get("sv_privatePassword", "", CVAR_TEMP);
sv_fps = Cvar_Get("sv_fps", "20", CVAR_TEMP);
sv_timeout = Cvar_Get("sv_timeout", "240", CVAR_TEMP);
sv_timeout = Cvar_Get("sv_timeout", "15", CVAR_TEMP);
sv_dl_timeout = Cvar_Get("sv_dl_timeout", "240", CVAR_TEMP);
sv_zombietime = Cvar_Get("sv_zombietime", "2", CVAR_TEMP);
Cvar_Get("nextmap", "", CVAR_TEMP);

Expand Down
28 changes: 19 additions & 9 deletions src/server/sv_main.c
Expand Up @@ -73,6 +73,7 @@ cvar_t *sv_maxlives; // NERVE - SMF
cvar_t *sv_needpass;

cvar_t *sv_dl_maxRate;
cvar_t *sv_dl_timeout; // IRATA - seconds without any message when cl->state != CS_ACTIVE

cvar_t *g_gameType;

Expand Down Expand Up @@ -1183,13 +1184,11 @@ static void SV_CalcPings(void)
*/
static void SV_CheckTimeouts(void)
{
int i;
client_t *cl;
int droppoint;
int zombiepoint;

droppoint = svs.time - 1000 * sv_timeout->integer;
zombiepoint = svs.time - 1000 * sv_zombietime->integer;
int i;
int droppoint = svs.time - 1000 * sv_timeout->integer; // default 15
int zombiepoint = svs.time - 1000 * sv_zombietime->integer; // default 2
int droppoint_dl= svs.time - 1000 * sv_dl_timeout->integer; // default 240

for (i = 0, cl = svs.clients ; i < sv_maxclients->integer ; i++, cl++)
{
Expand All @@ -1207,19 +1206,30 @@ static void SV_CheckTimeouts(void)

continue;
}
if (cl->state >= CS_CONNECTED && cl->lastPacketTime < droppoint)

if (cl->state == CS_ACTIVE && cl->lastPacketTime < droppoint)
{
// wait several frames so a debugger session doesn't
// cause a timeout
if (++cl->timeoutCount > 5)
{
SV_DropClient(cl, va("game timed out %i\n", cl->state));
cl->state = CS_FREE; // don't bother with zombie state
}
}
else if ((cl->state == CS_CONNECTED || cl->state == CS_PRIMED) && cl->lastPacketTime < droppoint_dl)
{
// wait several frames so a debugger session doesn't
// cause a timeout
if (++cl->timeoutCount > 5)
{
SV_DropClient(cl, va("timed out %i\n", cl->state));
SV_DropClient(cl, va("preparation timed out %i\n", cl->state));
cl->state = CS_FREE; // don't bother with zombie state
}
}
else
{
cl->timeoutCount = 0;
cl->timeoutCount = 0; // CS_FREE
}
}
}
Expand Down

0 comments on commit 69561e8

Please sign in to comment.