aboutsummaryrefslogtreecommitdiffstats
path: root/code
diff options
context:
space:
mode:
authorthilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea>2006-05-04 13:59:58 +0000
committerthilo <thilo@edf5b092-35ff-0310-97b2-ce42778d08ea>2006-05-04 13:59:58 +0000
commit590018b5cd476a4f2ee8963f5342d0a6c5adcdcb (patch)
tree77b0a8097c22760e6d13644b4bbf94b64c78fd10 /code
parent01c266dda2a707782bc6c2d58c7c8ea3f19803ba (diff)
downloadioquake3-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
Diffstat (limited to 'code')
-rw-r--r--code/client/cl_main.c4
-rw-r--r--code/server/sv_init.c2
-rw-r--r--code/unix/linux_signals.c1
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
}