diff options
author | Andrey Nazarov <skuller@skuller.net> | 2008-10-30 17:12:38 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2008-10-30 17:12:38 +0000 |
commit | d65e02496cd9873f5bb0297661b19762b44ddfec (patch) | |
tree | 3efd54fd5e823ed2f56b374c5ee3f2ecd65592e5 /source/sv_main.c | |
parent | d95e79eb44efe2cd2e021527abbbf31933432375 (diff) |
Added ICMP error queue support on Linux.
Client no longer drops connection immediately after an ICMP error
is received, but waits some time for valid packets from server.
Fixed FreeBSD build.
Diffstat (limited to 'source/sv_main.c')
-rw-r--r-- | source/sv_main.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/source/sv_main.c b/source/sv_main.c index a0f305f..97dc122 100644 --- a/source/sv_main.c +++ b/source/sv_main.c @@ -1330,7 +1330,7 @@ void SV_SendAsyncPackets( void ) { continue; } - // just update reliable if needed + // just update reliable if needed if( netchan->type == NETCHAN_OLD ) { SV_ClientWriteReliableMessages_Old( client, netchan->maxpacketlen ); } @@ -1355,8 +1355,7 @@ calctime: SV_CheckTimeouts If a packet has not been received from a client for timeout->value -seconds, drop the conneciton. Server frames are used instead of -realtime to avoid dropping the local client while debugging. +seconds, drop the conneciton. When a client is normally dropped, the client_t goes into a zombie state for a few seconds to make sure any final reliable message gets resent @@ -1366,8 +1365,8 @@ if necessary static void SV_CheckTimeouts( void ) { client_t *client; unsigned zombie_time = 1000 * sv_zombietime->value; - unsigned drop_time = 1000 * sv_timeout->value; - unsigned ghost_time = 1000 * sv_ghostime->value; + unsigned drop_time = 1000 * sv_timeout->value; + unsigned ghost_time = 1000 * sv_ghostime->value; unsigned delta; FOR_EACH_CLIENT( client ) { |