summaryrefslogtreecommitdiff
path: root/src/sv_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sv_main.c')
-rw-r--r--src/sv_main.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/sv_main.c b/src/sv_main.c
index 6aa15fd..ab0a43d 100644
--- a/src/sv_main.c
+++ b/src/sv_main.c
@@ -1278,19 +1278,21 @@ static void SV_PacketEvent( void ) {
netchan->remote_address.port = net_from.port;
}
- if( netchan->Process( netchan ) ) {
- // this is a valid, sequenced packet, so process it
- if( client->state != cs_zombie ) {
- //if( client->state != cs_assigned ) {
- client->lastmessage = svs.realtime; // don't timeout
- //}
+ if( !netchan->Process( netchan ) )
+ break;
+
+ if( client->state == cs_zombie )
+ break;
+
+ // this is a valid, sequenced packet, so process it
+ client->lastmessage = svs.realtime; // don't timeout
#if USE_ICMP
- client->unreachable = qfalse; // don't drop
+ client->unreachable = qfalse; // don't drop
#endif
- SV_ExecuteClientMessage( client );
- }
- }
+ if( netchan->dropped > 0 )
+ client->frameflags |= FF_CLIENTDROP;
+ SV_ExecuteClientMessage( client );
break;
}
}