From 590018b5cd476a4f2ee8963f5342d0a6c5adcdcb Mon Sep 17 00:00:00 2001 From: thilo Date: Thu, 4 May 2006 13:59:58 +0000 Subject: - 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 --- code/client/cl_main.c | 4 ++++ code/server/sv_init.c | 2 +- code/unix/linux_signals.c | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) (limited to 'code') 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 } -- cgit v1.2.3