Fix crash after /upgrade with IRC servers connected via SSL (bug #25398)
We force disconnection of IRC servers connected via SSL, and schedule reconnection to server after WeeChat restart.
This commit is contained in:
parent
7ec4d05d2f
commit
b5534e6e05
19
po/cs.po
19
po/cs.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-01-28 13:54+0100\n"
|
||||
"POT-Creation-Date: 2009-01-30 14:15+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1871,8 +1871,11 @@ msgstr "Obdržen signál %s, ukončuji WeeChat.."
|
||||
msgid "Signal SIGHUP received, reloading configuration files"
|
||||
msgstr "%s selhalo uložení konfiguračního souboru\n"
|
||||
|
||||
#, fuzzy
|
||||
msgid "server"
|
||||
msgstr "server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "server"
|
||||
msgstr[1] "server"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -2334,6 +2337,18 @@ msgstr ""
|
||||
msgid "Lag"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnecting from server because upgrade can't work for servers "
|
||||
"connected via SSL"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: %s after %d is "server" or "servers"
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnected from %d %s (SSL connection not supported with upgrade)"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: error with server from URL (\"%s\"), ignored"
|
||||
msgstr "%s nevalidní syntaxe pro IRC server ('%s'), ignorován\n"
|
||||
|
19
po/de.po
19
po/de.po
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-01-28 13:54+0100\n"
|
||||
"POT-Creation-Date: 2009-01-30 14:15+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Thomas Schuetz <i18n@internet-villa.de>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1890,8 +1890,11 @@ msgstr ""
|
||||
msgid "Signal SIGHUP received, reloading configuration files"
|
||||
msgstr "%s konnte die Konfigurationsdatei nicht sichern\n"
|
||||
|
||||
#, fuzzy
|
||||
msgid "server"
|
||||
msgstr "Server"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "Server"
|
||||
msgstr[1] "Server"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -2342,6 +2345,18 @@ msgstr ""
|
||||
msgid "Lag"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnecting from server because upgrade can't work for servers "
|
||||
"connected via SSL"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: %s after %d is "server" or "servers"
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnected from %d %s (SSL connection not supported with upgrade)"
|
||||
msgstr ""
|
||||
|
||||
# ???
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: error with server from URL (\"%s\"), ignored"
|
||||
|
19
po/es.po
19
po/es.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-01-28 13:54+0100\n"
|
||||
"POT-Creation-Date: 2009-01-30 14:15+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Roberto González Cardenete <robert.glez@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1869,8 +1869,11 @@ msgstr ""
|
||||
msgid "Signal SIGHUP received, reloading configuration files"
|
||||
msgstr "%s falló al salvar el archivo de configuración\n"
|
||||
|
||||
#, fuzzy
|
||||
msgid "server"
|
||||
msgstr "servidor"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "servidor"
|
||||
msgstr[1] "servidor"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -2317,6 +2320,18 @@ msgstr ""
|
||||
msgid "Lag"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnecting from server because upgrade can't work for servers "
|
||||
"connected via SSL"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: %s after %d is "server" or "servers"
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnected from %d %s (SSL connection not supported with upgrade)"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: error with server from URL (\"%s\"), ignored"
|
||||
msgstr "%s sintaxis inválida para el servidor IRC ('%s'), ignorado\n"
|
||||
|
23
po/fr.po
23
po/fr.po
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-01-28 13:54+0100\n"
|
||||
"PO-Revision-Date: 2009-01-28 13:54+0100\n"
|
||||
"POT-Creation-Date: 2009-01-30 14:15+0100\n"
|
||||
"PO-Revision-Date: 2009-01-30 14:14+0100\n"
|
||||
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -1967,7 +1967,9 @@ msgid "Signal SIGHUP received, reloading configuration files"
|
||||
msgstr "Signal SIGHUP reçu, rechargement des fichiers de configuration"
|
||||
|
||||
msgid "server"
|
||||
msgstr "serveur"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "serveur"
|
||||
msgstr[1] "serveurs"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -2434,6 +2436,21 @@ msgstr "absent"
|
||||
msgid "Lag"
|
||||
msgstr "Lag"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnecting from server because upgrade can't work for servers "
|
||||
"connected via SSL"
|
||||
msgstr ""
|
||||
"%s%s: déconnexion du serveur car la mise à jour ne peut pas fonctionner avec "
|
||||
"les serveurs connectés via SSL"
|
||||
|
||||
#. TRANSLATORS: %s after %d is "server" or "servers"
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnected from %d %s (SSL connection not supported with upgrade)"
|
||||
msgstr ""
|
||||
"%s%s: déconnecté de %d %s (connexion SSL non supportée avec la mise à jour)"
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: error with server from URL (\"%s\"), ignored"
|
||||
msgstr "%s%s: erreur avec le serveur de l'URL (\"%s\"), ignoré"
|
||||
|
19
po/hu.po
19
po/hu.po
@ -12,7 +12,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-01-28 13:54+0100\n"
|
||||
"POT-Creation-Date: 2009-01-30 14:15+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1901,8 +1901,11 @@ msgstr ""
|
||||
msgid "Signal SIGHUP received, reloading configuration files"
|
||||
msgstr "%s nem sikerült a konfigurációs fájlt elmenteni\n"
|
||||
|
||||
#, fuzzy
|
||||
msgid "server"
|
||||
msgstr "szerver"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "szerver"
|
||||
msgstr[1] "szerver"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -2351,6 +2354,18 @@ msgstr ""
|
||||
msgid "Lag"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnecting from server because upgrade can't work for servers "
|
||||
"connected via SSL"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: %s after %d is "server" or "servers"
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnected from %d %s (SSL connection not supported with upgrade)"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: error with server from URL (\"%s\"), ignored"
|
||||
msgstr "%s érvénytelen szintaxis az IRC szervernek ('%s'), mellőzve\n"
|
||||
|
19
po/ru.po
19
po/ru.po
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: WeeChat 0.2.7-dev\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-01-28 13:54+0100\n"
|
||||
"POT-Creation-Date: 2009-01-30 14:15+0100\n"
|
||||
"PO-Revision-Date: 2009-01-03 00:42+0100\n"
|
||||
"Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n"
|
||||
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
|
||||
@ -1903,8 +1903,11 @@ msgstr ""
|
||||
msgid "Signal SIGHUP received, reloading configuration files"
|
||||
msgstr "%s не могу сохранить конфигурационный файл\n"
|
||||
|
||||
#, fuzzy
|
||||
msgid "server"
|
||||
msgstr "сервер"
|
||||
msgid_plural "servers"
|
||||
msgstr[0] "сервер"
|
||||
msgstr[1] "сервер"
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -2355,6 +2358,18 @@ msgstr ""
|
||||
msgid "Lag"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnecting from server because upgrade can't work for servers "
|
||||
"connected via SSL"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: %s after %d is "server" or "servers"
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnected from %d %s (SSL connection not supported with upgrade)"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy, c-format
|
||||
msgid "%s%s: error with server from URL (\"%s\"), ignored"
|
||||
msgstr "%s некорректный синтаксис IRC сервра ('%s'), игнорируется\n"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2009-01-28 13:54+0100\n"
|
||||
"POT-Creation-Date: 2009-01-30 14:15+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -1610,7 +1610,9 @@ msgid "Signal SIGHUP received, reloading configuration files"
|
||||
msgstr ""
|
||||
|
||||
msgid "server"
|
||||
msgstr ""
|
||||
msgid_plural "servers"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
@ -2020,6 +2022,18 @@ msgstr ""
|
||||
msgid "Lag"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnecting from server because upgrade can't work for servers "
|
||||
"connected via SSL"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: %s after %d is "server" or "servers"
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s%s: disconnected from %d %s (SSL connection not supported with upgrade)"
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "%s%s: error with server from URL (\"%s\"), ignored"
|
||||
msgstr ""
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "../weechat-plugin.h"
|
||||
#include "irc.h"
|
||||
#include "irc-bar-item.h"
|
||||
#include "irc-buffer.h"
|
||||
#include "irc-command.h"
|
||||
#include "irc-completion.h"
|
||||
#include "irc-config.h"
|
||||
@ -86,6 +87,9 @@ int
|
||||
irc_signal_upgrade_cb (void *data, const char *signal, const char *type_data,
|
||||
void *signal_data)
|
||||
{
|
||||
struct t_irc_server *ptr_server;
|
||||
int disconnected;
|
||||
|
||||
/* make C compiler happy */
|
||||
(void) data;
|
||||
(void) signal;
|
||||
@ -94,6 +98,40 @@ irc_signal_upgrade_cb (void *data, const char *signal, const char *type_data,
|
||||
|
||||
irc_signal_upgrade_received = 1;
|
||||
|
||||
/* FIXME: it's not possible to upgrade with SSL servers connected (GnuTLS
|
||||
lib can't reload data after upgrade), so we close connection for
|
||||
all SSL servers currently connected */
|
||||
disconnected = 0;
|
||||
for (ptr_server = irc_servers; ptr_server;
|
||||
ptr_server = ptr_server->next_server)
|
||||
{
|
||||
if (ptr_server->is_connected && ptr_server->ssl_connected)
|
||||
{
|
||||
disconnected++;
|
||||
weechat_printf (ptr_server->buffer,
|
||||
_("%s%s: disconnecting from server because upgrade "
|
||||
"can't work for servers connected via SSL"),
|
||||
irc_buffer_get_server_prefix (ptr_server, "error"),
|
||||
IRC_PLUGIN_NAME);
|
||||
irc_server_disconnect (ptr_server, 0);
|
||||
/* schedule reconnection: WeeChat will reconnect to this server
|
||||
after restart */
|
||||
ptr_server->index_current_address = 0;
|
||||
ptr_server->reconnect_start = time (NULL) -
|
||||
IRC_SERVER_OPTION_INTEGER(ptr_server, IRC_SERVER_OPTION_AUTORECONNECT_DELAY) - 1;
|
||||
}
|
||||
}
|
||||
if (disconnected > 0)
|
||||
{
|
||||
weechat_printf (NULL,
|
||||
/* TRANSLATORS: %s after %d is "server" or "servers" */
|
||||
_("%s%s: disconnected from %d %s (SSL connection "
|
||||
"not supported with upgrade)"),
|
||||
weechat_prefix ("error"), IRC_PLUGIN_NAME,
|
||||
disconnected,
|
||||
NG_("server", "servers", disconnected));
|
||||
}
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user