From 8cc9684c76268b795d54c11d2f52d802c794d2ad Mon Sep 17 00:00:00 2001 From: Kevin Easton Date: Mon, 7 Sep 2015 16:34:41 +1000 Subject: [PATCH] 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(). --- Changelog | 3 +++ source/commands.c | 1 - source/parse.c | 1 - source/server.c | 13 ++++++------- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Changelog b/Changelog index f15ca14..c8f0027 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,8 @@ [Changes 1.2.2] +* Ensure close_server() clears the internal command queues for the right + server. (caf) + * Remove obsolete AIM plugin. (caf) * Tighten up the handling of channel WALLs. (caf) diff --git a/source/commands.c b/source/commands.c index 1a9b53c..593033c 100644 --- a/source/commands.c +++ b/source/commands.c @@ -1137,7 +1137,6 @@ BUILT_IN_COMMAND(reconnect_cmd) /* close server will take care of the .reconnect variable */ set_server_reconnecting(from_server, 1); close_server(from_server,(args && *args) ? args : "Reconnecting"); - clean_server_queues(from_server); window_check_servers(from_server); servercmd(NULL, scommnd, empty_string, NULL); diff --git a/source/parse.c b/source/parse.c index f0ea9b0..e691bb3 100644 --- a/source/parse.c +++ b/source/parse.c @@ -1312,7 +1312,6 @@ static void p_kill(char *from, char **ArgList) set_server_reconnecting(from_server, 1); close_server(from_server,empty_string); - clean_server_queues(from_server); window_check_servers(from_server); set_input_prompt(current_window, get_string_var(INPUT_PROMPT_VAR), 0); if (serverkill) diff --git a/source/server.c b/source/server.c index 4277380..bb6cff7 100644 --- a/source/server.c +++ b/source/server.c @@ -109,7 +109,7 @@ void BX_close_server (int cs_index, char *message) if (serv_close_func) (*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) waiting_out = waiting_in = 0; @@ -329,11 +329,11 @@ int advance_server(int i) */ 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); - if(server != i) + if (server != i) { /* We have a new server to try, so lets * 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); - clean_server_queues(server); 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")); 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."); return server;