* (bug 2784) help to prevent reliable command overflow in cases when a slow
client is loading the map on a busy server. Specifically, hold back all configstring update commands while the client is CS_PRIMED. Once the client goes from CS_PRIMED to CS_ACTIVE, send the cleint commands for updating each of the configstring indexes which were updated while the client was CS_PRIMED.
This commit is contained in:
parent
41add6c01f
commit
189e8b33f3
4 changed files with 90 additions and 34 deletions
|
@ -135,6 +135,10 @@ void SV_AddServerCommand( client_t *client, const char *cmd ) {
|
|||
// return;
|
||||
// }
|
||||
|
||||
// do not send commands until the gamestate has been sent
|
||||
if( client->state < CS_PRIMED )
|
||||
return;
|
||||
|
||||
client->reliableSequence++;
|
||||
// if we would be losing an old command that hasn't been acknowledged,
|
||||
// we must drop the connection
|
||||
|
@ -193,9 +197,6 @@ void QDECL SV_SendServerCommand(client_t *cl, const char *fmt, ...) {
|
|||
|
||||
// send the data to all relevent clients
|
||||
for (j = 0, client = svs.clients; j < sv_maxclients->integer ; j++, client++) {
|
||||
if ( client->state < CS_PRIMED ) {
|
||||
continue;
|
||||
}
|
||||
SV_AddServerCommand( client, (char *)message );
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue