From 9ea73fda4b407fe13a97039b9cdf00b6577a1a33 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Wed, 10 Nov 2010 12:21:18 +0100 Subject: [PATCH] Fix bug with /upgrade on ssl servers with prefix modes and chars The value of isupport, prefix_modes and prefix_chars in irc server are now removed on connection, not on disconnection. --- src/plugins/irc/irc-server.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index 30656a094..d004160f9 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -3255,6 +3255,23 @@ irc_server_connect (struct t_irc_server *server) return 0; } + /* free some old values (from a previous connection to server) */ + if (server->isupport) + { + free (server->isupport); + server->isupport = NULL; + } + if (server->prefix_modes) + { + free (server->prefix_modes); + server->prefix_modes = NULL; + } + if (server->prefix_chars) + { + free (server->prefix_chars); + server->prefix_chars = NULL; + } + proxy_type = NULL; proxy_ipv6 = NULL; proxy_address = NULL; @@ -3543,21 +3560,6 @@ irc_server_disconnect (struct t_irc_server *server, int switch_address, server->nick_modes = NULL; weechat_bar_item_update ("input_prompt"); } - if (server->isupport) - { - free (server->isupport); - server->isupport = NULL; - } - if (server->prefix_modes) - { - free (server->prefix_modes); - server->prefix_modes = NULL; - } - if (server->prefix_chars) - { - free (server->prefix_chars); - server->prefix_chars = NULL; - } server->is_away = 0; server->away_time = 0; server->lag = 0;