diff options
author | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2006-05-04 13:59:58 +0000 |
---|---|---|
committer | thilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2006-05-04 13:59:58 +0000 |
commit | 590018b5cd476a4f2ee8963f5342d0a6c5adcdcb (patch) | |
tree | 77b0a8097c22760e6d13644b4bbf94b64c78fd10 | |
parent | 01c266dda2a707782bc6c2d58c7c8ea3f19803ba (diff) | |
download | ioquake3-aero-590018b5cd476a4f2ee8963f5342d0a6c5adcdcb.tar.gz ioquake3-aero-590018b5cd476a4f2ee8963f5342d0a6c5adcdcb.zip |
- Added SV_Shutdown to Linux signal handler to ensure that clients don't hang when server gets killed, as suggested by Tony J. White
- Added newline to final message sent to clients.
- Added check for whether client is running at all before CL_Shutdown runs through.
git-svn-id: svn://svn.icculus.org/quake3/trunk@738 edf5b092-35ff-0310-97b2-ce42778d08ea
-rw-r--r-- | code/client/cl_main.c | 4 | ||||
-rw-r--r-- | code/server/sv_init.c | 2 | ||||
-rw-r--r-- | code/unix/linux_signals.c | 1 |
3 files changed, 6 insertions, 1 deletions
diff --git a/code/client/cl_main.c b/code/client/cl_main.c index 8f9cbae..7b207e5 100644 --- a/code/client/cl_main.c +++ b/code/client/cl_main.c @@ -2564,6 +2564,10 @@ CL_Shutdown void CL_Shutdown( void ) { static qboolean recursive = qfalse; + // check whether the client is running at all. + if(!(com_cl_running && com_cl_running->integer)) + return; + Com_Printf( "----- CL_Shutdown -----\n" ); if ( recursive ) { diff --git a/code/server/sv_init.c b/code/server/sv_init.c index 92dd6ad..8472adf 100644 --- a/code/server/sv_init.c +++ b/code/server/sv_init.c @@ -646,7 +646,7 @@ void SV_FinalMessage( char *message ) { if (cl->state >= CS_CONNECTED) { // don't send a disconnect to a local client if ( cl->netchan.remoteAddress.type != NA_LOOPBACK ) { - SV_SendServerCommand( cl, "print \"%s\"\n", message ); + SV_SendServerCommand( cl, "print \"%s\n\"\n", message ); SV_SendServerCommand( cl, "disconnect" ); } // force a snapshot to be sent diff --git a/code/unix/linux_signals.c b/code/unix/linux_signals.c index f9317ce..3e95f54 100644 --- a/code/unix/linux_signals.c +++ b/code/unix/linux_signals.c @@ -46,6 +46,7 @@ static void signal_handler(int sig) // bk010104 - replace this... (NOTE TTimo hu // rcg08312005 Agreed: changed to CL_Shutdown... --ryan. CL_Shutdown(); #endif + SV_Shutdown("Signal caught"); Sys_Exit(0); // bk010104 - abstraction NOTE TTimo send a 0 to avoid DOUBLE SIGNAL FAULT } |