Ensure close_server() clears the who/ison/userhost queues for the right server

close_server() should call clear_server_queues() on the server that's being
closed, not from_server.  This also lets us remove a few other calls to
clear_server_queues() that are right next to calls to close_server().
This commit is contained in:
Kevin Easton
2015-09-07 16:34:41 +10:00
parent 35b1a65f03
commit 8cc9684c76
4 changed files with 9 additions and 9 deletions

View File

@@ -1,5 +1,8 @@
[Changes 1.2.2] [Changes 1.2.2]
* Ensure close_server() clears the internal command queues for the right
server. (caf)
* Remove obsolete AIM plugin. (caf) * Remove obsolete AIM plugin. (caf)
* Tighten up the handling of channel WALLs. (caf) * Tighten up the handling of channel WALLs. (caf)

View File

@@ -1137,7 +1137,6 @@ BUILT_IN_COMMAND(reconnect_cmd)
/* close server will take care of the .reconnect variable */ /* close server will take care of the .reconnect variable */
set_server_reconnecting(from_server, 1); set_server_reconnecting(from_server, 1);
close_server(from_server,(args && *args) ? args : "Reconnecting"); close_server(from_server,(args && *args) ? args : "Reconnecting");
clean_server_queues(from_server);
window_check_servers(from_server); window_check_servers(from_server);
servercmd(NULL, scommnd, empty_string, NULL); servercmd(NULL, scommnd, empty_string, NULL);

View File

@@ -1312,7 +1312,6 @@ static void p_kill(char *from, char **ArgList)
set_server_reconnecting(from_server, 1); set_server_reconnecting(from_server, 1);
close_server(from_server,empty_string); close_server(from_server,empty_string);
clean_server_queues(from_server);
window_check_servers(from_server); window_check_servers(from_server);
set_input_prompt(current_window, get_string_var(INPUT_PROMPT_VAR), 0); set_input_prompt(current_window, get_string_var(INPUT_PROMPT_VAR), 0);
if (serverkill) if (serverkill)

View File

@@ -109,7 +109,7 @@ void BX_close_server (int cs_index, char *message)
if (serv_close_func) if (serv_close_func)
(*serv_close_func)(cs_index, server_list[cs_index].local_addr, server_list[cs_index].port); (*serv_close_func)(cs_index, server_list[cs_index].local_addr, server_list[cs_index].port);
clean_server_queues(from_server); clean_server_queues(cs_index);
if (waiting_out > waiting_in) if (waiting_out > waiting_in)
waiting_out = waiting_in = 0; waiting_out = waiting_in = 0;
@@ -329,11 +329,11 @@ int advance_server(int i)
*/ */
server_list[i].retries++; server_list[i].retries++;
if(server_list[i].retries >= get_int_var(MAX_SERVER_RECONNECT_VAR)) if (server_list[i].retries >= get_int_var(MAX_SERVER_RECONNECT_VAR))
{ {
server = next_server(i); server = next_server(i);
if(server != i) if (server != i)
{ {
/* We have a new server to try, so lets /* We have a new server to try, so lets
* move the variables over from the last one * move the variables over from the last one
@@ -361,16 +361,15 @@ int advance_server(int i)
} }
} }
if(!get_int_var(AUTO_RECONNECT_VAR) && (server_list[server].req_server != server || server_list[server].retries > 1)) if (!get_int_var(AUTO_RECONNECT_VAR) && (server_list[server].req_server != server || server_list[server].retries > 1))
{ {
close_server(server, empty_string); close_server(server, empty_string);
clean_server_queues(server);
from_server = -1; from_server = -1;
if(do_hook(DISCONNECT_LIST,"No Connection")) if (do_hook(DISCONNECT_LIST,"No Connection"))
put_it("%s", convert_output_format(fget_string_var(FORMAT_DISCONNECT_FSET), "%s %s", update_clock(GET_TIME), "No connection")); put_it("%s", convert_output_format(fget_string_var(FORMAT_DISCONNECT_FSET), "%s %s", update_clock(GET_TIME), "No connection"));
return -1; return -1;
} }
else if(server == server_list[i].req_server && server_list[server].retries > 1) else if (server == server_list[i].req_server && server_list[server].retries > 1)
bitchsay("Servers exhausted. Restarting."); bitchsay("Servers exhausted. Restarting.");
return server; return server;