From 03c035c78a2597b91070966bace27d10d9a647d4 Mon Sep 17 00:00:00 2001 From: divverent Date: Tue, 10 Jul 2007 06:39:28 +0000 Subject: [PATCH] oops... forgot to safeguard against recursive character adding git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@7480 d7cf8633-e32d-0410-b094-e92efae38249 --- console.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/console.c b/console.c index 01b38b48..d7e614a1 100644 --- a/console.c +++ b/console.c @@ -79,6 +79,7 @@ cvar_t log_file = {0, "log_file","", "filename to log messages to"}; cvar_t log_dest_udp = {0, "log_dest_udp","", "UDP address to log messages to (in QW rcon compatible format); multiple destinations can be separated by spaces; DO NOT SPECIFY DNS NAMES HERE"}; char log_dest_buffer[1400]; // UDP packet size_t log_dest_buffer_pos; +qboolean log_dest_buffer_appending; char crt_log_file [MAX_OSPATH] = ""; qfile_t* logfile = NULL; @@ -112,10 +113,11 @@ void Log_DestBuffer_Flush() qboolean have_opened_temp_sockets = false; if(s) if(log_dest_buffer_pos > 5) { + ++log_dest_buffer_appending; log_dest_buffer[log_dest_buffer_pos++] = 0; if(!NetConn_HaveServerPorts() && !NetConn_HaveClientPorts()) // then temporarily open one - { + { have_opened_temp_sockets = true; NetConn_OpenServerPorts(true); } @@ -132,6 +134,7 @@ void Log_DestBuffer_Flush() if(have_opened_temp_sockets) NetConn_CloseServerPorts(); + --log_dest_buffer_appending; } log_dest_buffer_pos = 0; } @@ -679,8 +682,13 @@ Adds a character to the rcon buffer */ void Con_Rcon_AddChar(char c) { + if(log_dest_buffer_appending) + return; + ++log_dest_buffer_appending; + // if this print is in response to an rcon command, add the character // to the rcon redirect buffer + if (rcon_redirect && rcon_redirect_bufferpos < (int)sizeof(rcon_redirect_buffer) - 1) rcon_redirect_buffer[rcon_redirect_bufferpos++] = c; else if(*log_dest_udp.string) // don't duplicate rcon command responses here, these are sent another way @@ -693,6 +701,8 @@ void Con_Rcon_AddChar(char c) } else log_dest_buffer_pos = 0; + + --log_dest_buffer_appending; } /* -- 2.39.2