1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-02 15:53:12 +02:00

Fix SSL connection to some IRC servers using Diffie Hellman and small exchange keys (bug #25996)

This commit is contained in:
Sebastien Helleu
2009-03-27 16:48:58 +01:00
parent 6e7b62be97
commit 540756bf54
21 changed files with 356 additions and 89 deletions
+19 -8
View File
@@ -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-03-23 11:08+0100\n"
"POT-Creation-Date: 2009-03-27 16:41+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"
@@ -1676,6 +1676,9 @@ msgstr ""
"maximální počet příkazů, který zobrazit jako výchozí v seznamu historie (0 = "
"nekonečno)"
msgid "minimum size in bits for handshake using Diffie Hellman key exchange"
msgstr ""
#, fuzzy
msgid ""
"comma separated list of plugins to load automatically at startup, \"*\" "
@@ -1711,6 +1714,14 @@ msgstr ""
msgid "save configuration files when unloading plugins"
msgstr "uložit soubor s nastavením při ukončení"
#, fuzzy
msgid "FATAL: error initializing configuration options"
msgstr "říct serveru, aby znovu načetl svůj konfigurační soubor"
#, fuzzy, c-format
msgid "%sError reading configuration"
msgstr "říct serveru, aby znovu načetl svůj konfigurační soubor"
#, fuzzy, c-format
msgid "%sError: cannot create file \"%s\""
msgstr "%s nemohu vytvořit soubor \"%s\"\n"
@@ -2375,13 +2386,13 @@ msgstr "%s chyba při čtení FIFO roury, zavírám ji\n"
msgid "name of FIFO pipe"
msgstr ""
msgid "away"
msgstr ""
#, fuzzy
msgid "servers"
msgstr "server"
msgid "away"
msgstr ""
msgid "Lag"
msgstr ""
@@ -4092,6 +4103,10 @@ msgstr "%s adresa proxy \"%s\" nenalezena\n"
msgid "%s%s: address \"%s\" not found"
msgstr "%s adresa \"%s\" nenalezena\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sServer: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: proxy IP address not found"
msgstr "%s IP adresa proxy nenalezena\n"
@@ -4964,10 +4979,6 @@ msgstr "%s: zaregistrován skript \"%s\", verze %s (%s)"
msgid "%s%s: unable to run function \"%s\""
msgstr "Nemůžu zapsat log soubor \"%s\"\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sServer: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: script \"%s\" not found"
msgstr "%s server \"%s\" nenalezen\n"
+19 -8
View File
@@ -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-03-23 11:08+0100\n"
"POT-Creation-Date: 2009-03-27 16:41+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"
@@ -1694,6 +1694,9 @@ msgid ""
"unlimited)"
msgstr "maximale Anzahl der angezeigten Befehle im Verlauf (0: unbegrenzt)"
msgid "minimum size in bits for handshake using Diffie Hellman key exchange"
msgstr ""
#, fuzzy
msgid ""
"comma separated list of plugins to load automatically at startup, \"*\" "
@@ -1725,6 +1728,14 @@ msgstr ""
msgid "save configuration files when unloading plugins"
msgstr "Konfiguration beim Verlassen abspeichern"
#, fuzzy
msgid "FATAL: error initializing configuration options"
msgstr "den Server dazu bringen, seine Konfigurationsdatei neu zu laden"
#, fuzzy, c-format
msgid "%sError reading configuration"
msgstr "den Server dazu bringen, seine Konfigurationsdatei neu zu laden"
#, fuzzy, c-format
msgid "%sError: cannot create file \"%s\""
msgstr "%s kann die Datei \"%s\" nicht anlegen\n"
@@ -2380,13 +2391,13 @@ msgstr "%s Fehler beim Lesen vom FIFO, FIFO wird geschlossen\n"
msgid "name of FIFO pipe"
msgstr ""
msgid "away"
msgstr ""
#, fuzzy
msgid "servers"
msgstr "Server"
msgid "away"
msgstr ""
msgid "Lag"
msgstr ""
@@ -4066,6 +4077,10 @@ msgstr "%s Proxyadresse \"%s\" nicht gefunden\n"
msgid "%s%s: address \"%s\" not found"
msgstr "%s Adresse \"%s\" nicht gefunden\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sServer: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: proxy IP address not found"
msgstr "%s Proxy-IP-Adresse nicht gefunden\n"
@@ -4907,10 +4922,6 @@ msgstr ""
msgid "%s%s: unable to run function \"%s\""
msgstr "Kann das Logfile nicht schreiben\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sServer: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: script \"%s\" not found"
msgstr "%s Server \"%s\" nicht gefunden\n"
+19 -8
View File
@@ -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-03-23 11:08+0100\n"
"POT-Creation-Date: 2009-03-27 16:41+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"
@@ -1679,6 +1679,9 @@ msgstr ""
"número máximo de comandos para mostrar por defecto en el listado del "
"historial (0 = ilimitado)"
msgid "minimum size in bits for handshake using Diffie Hellman key exchange"
msgstr ""
#, fuzzy
msgid ""
"comma separated list of plugins to load automatically at startup, \"*\" "
@@ -1710,6 +1713,14 @@ msgstr ""
msgid "save configuration files when unloading plugins"
msgstr "guardar configuración a disco"
#, fuzzy
msgid "FATAL: error initializing configuration options"
msgstr "pedir al servidor que recargue su archivo de configuración"
#, fuzzy, c-format
msgid "%sError reading configuration"
msgstr "pedir al servidor que recargue su archivo de configuración"
#, fuzzy, c-format
msgid "%sError: cannot create file \"%s\""
msgstr "%s no es posible crear el fichero \"%s\"\n"
@@ -2355,13 +2366,13 @@ msgstr "%s error al leer la tubería FIFO, cerrándola\n"
msgid "name of FIFO pipe"
msgstr ""
msgid "away"
msgstr ""
#, fuzzy
msgid "servers"
msgstr "servidor"
msgid "away"
msgstr ""
msgid "Lag"
msgstr ""
@@ -4059,6 +4070,10 @@ msgstr "%s dirección proxy \"%s\" no encontrada\n"
msgid "%s%s: address \"%s\" not found"
msgstr "%s dirección \"%s\" no encontrada\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sServidor: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: proxy IP address not found"
msgstr "%s dirección proxy IP no encontrada\n"
@@ -4899,10 +4914,6 @@ msgstr ""
msgid "%s%s: unable to run function \"%s\""
msgstr "No es posible escribir un fichero de log para un búfer\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sServidor: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: script \"%s\" not found"
msgstr "%s servidor \"%s\" no encontrado\n"
+23 -17
View File
@@ -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-03-23 11:08+0100\n"
"PO-Revision-Date: 2009-03-23 11:08+0100\n"
"POT-Creation-Date: 2009-03-27 16:41+0100\n"
"PO-Revision-Date: 2009-03-27 16:43+0100\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -1774,6 +1774,11 @@ msgstr ""
"nombre maximum de commandes à afficher par défaut dans le listing "
"d'historique (0 = sans limite)"
msgid "minimum size in bits for handshake using Diffie Hellman key exchange"
msgstr ""
"taille minimum en bits pour la poignée de main (handshake) utilisant un "
"échange de clé Diffie Hellman"
msgid ""
"comma separated list of plugins to load automatically at startup, \"*\" "
"means all plugins found (names may be partial, for example \"perl\" is ok "
@@ -1808,6 +1813,13 @@ msgid "save configuration files when unloading plugins"
msgstr ""
"sauvegarder les fichiers de configuration lors du déchargement des extensions"
msgid "FATAL: error initializing configuration options"
msgstr "FATAL: erreur d'initialisation des options de configuration"
#, c-format
msgid "%sError reading configuration"
msgstr "%sErreur de lecture de la configuration"
#, c-format
msgid "%sError: cannot create file \"%s\""
msgstr "%sErreur: impossible de créer le fichier \"%s\""
@@ -2482,12 +2494,12 @@ msgstr "%s%s: erreur d'ouverture du fichier, fermeture"
msgid "name of FIFO pipe"
msgstr "nom du tube FIFO"
msgid "servers"
msgstr "serveurs"
msgid "away"
msgstr "absent"
msgid "servers"
msgstr "serveurs"
msgid "Lag"
msgstr "Lag"
@@ -4214,6 +4226,10 @@ msgstr "%s%s: adresse du proxy \"%s\" non trouvée"
msgid "%s%s: address \"%s\" not found"
msgstr "%s%s: adresse \"%s\" non trouvée"
#, c-format
msgid "%s%s: error: %s"
msgstr "%s%s: erreur: %s"
#, c-format
msgid "%s%s: proxy IP address not found"
msgstr "%s%s: adresse IP du proxy non trouvée"
@@ -4249,7 +4265,7 @@ msgstr "%s%s: erreur d'initialisation TLS"
#, c-format
msgid "%s%s: TLS handshake failed"
msgstr "%s%s: la poignée de main de TLS a échoué"
msgstr "%s%s: la poignée de main (handshake) de TLS a échoué"
#, c-format
msgid "%s%s: not enough memory"
@@ -4529,7 +4545,7 @@ msgstr "%s%s: erreur d'initialisation GnuTLS"
#, c-format
msgid "%s%s: GnuTLS handshake failed"
msgstr "%s%s: la poignée de main de GnuTLS a échoué"
msgstr "%s%s: la poignée de main (handshake) de GnuTLS a échoué"
#, c-format
msgid "%s%s: connecting to server %s/%d%s%s%s via %s proxy %s/%d%s..."
@@ -5101,10 +5117,6 @@ msgstr "%s: script \"%s\" chargé, version %s (%s)"
msgid "%s%s: unable to run function \"%s\""
msgstr "%s%s: impossible de lancer la fonction \"%s\""
#, c-format
msgid "%s%s: error: %s"
msgstr "%s%s: erreur: %s"
#, c-format
msgid "%s%s: script \"%s\" not found"
msgstr "%s%s: script \"%s\" non trouvé"
@@ -5662,9 +5674,3 @@ msgstr "%s%s: impossible de positionner l'option \"nonblock\" pour la socket"
#, c-format
msgid "%s%s: timeout for \"%s\" with %s"
msgstr "%s%s: délai d'attente dépassé pour \"%s\" avec %s"
#~ msgid " (used by a plugin)"
#~ msgstr " (utilisé par une extension)"
#~ msgid " (masked by a plugin)"
#~ msgstr " (masqué par une extension)"
+19 -8
View File
@@ -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-03-23 11:08+0100\n"
"POT-Creation-Date: 2009-03-27 16:41+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"
@@ -1707,6 +1707,9 @@ msgstr ""
"megjeleníthető parancsok maximális száma előzmények listázásakor ( 0 = "
"korlátlan)"
msgid "minimum size in bits for handshake using Diffie Hellman key exchange"
msgstr ""
#, fuzzy
msgid ""
"comma separated list of plugins to load automatically at startup, \"*\" "
@@ -1738,6 +1741,14 @@ msgstr ""
msgid "save configuration files when unloading plugins"
msgstr "beállítások mentése kilépéskor"
#, fuzzy
msgid "FATAL: error initializing configuration options"
msgstr "szerver konfigurációs fájljának újraolvastatása"
#, fuzzy, c-format
msgid "%sError reading configuration"
msgstr "szerver konfigurációs fájljának újraolvastatása"
#, fuzzy, c-format
msgid "%sError: cannot create file \"%s\""
msgstr "%s nem sikerült a \"%s\" fájlt létrehozni\n"
@@ -2389,13 +2400,13 @@ msgstr "%s hiba a FIFO cső olvasása közben, bezárás\n"
msgid "name of FIFO pipe"
msgstr ""
msgid "away"
msgstr ""
#, fuzzy
msgid "servers"
msgstr "szerver"
msgid "away"
msgstr ""
msgid "Lag"
msgstr ""
@@ -4091,6 +4102,10 @@ msgstr "%s proxy cím \"%s\" nem található\n"
msgid "%s%s: address \"%s\" not found"
msgstr "%s cím \"%s\" nem található\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sSzerver: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: proxy IP address not found"
msgstr "%s proxy IP-cím nem található\n"
@@ -4964,10 +4979,6 @@ msgstr ""
msgid "%s%s: unable to run function \"%s\""
msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sSzerver: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: script \"%s\" not found"
msgstr "%s a \"%s\" szerver nem található\n"
+19 -8
View File
@@ -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-03-23 11:08+0100\n"
"POT-Creation-Date: 2009-03-27 16:41+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"
@@ -1708,6 +1708,9 @@ msgstr ""
"максимальное количество отображаемых команд в листинге истории (0 = не "
"ограничено)"
msgid "minimum size in bits for handshake using Diffie Hellman key exchange"
msgstr ""
#, fuzzy
msgid ""
"comma separated list of plugins to load automatically at startup, \"*\" "
@@ -1739,6 +1742,14 @@ msgstr ""
msgid "save configuration files when unloading plugins"
msgstr "сохранять конфигурационный файл при выходе"
#, fuzzy
msgid "FATAL: error initializing configuration options"
msgstr "перезагрузить конфигурационный файл сервера"
#, fuzzy, c-format
msgid "%sError reading configuration"
msgstr "перезагрузить конфигурационный файл сервера"
#, fuzzy, c-format
msgid "%sError: cannot create file \"%s\""
msgstr "%s не могу создать файл \"%s\"\n"
@@ -2393,13 +2404,13 @@ msgstr "%s ошибка чтения FIFO pipe, закрываю его\n"
msgid "name of FIFO pipe"
msgstr ""
msgid "away"
msgstr ""
#, fuzzy
msgid "servers"
msgstr "сервер"
msgid "away"
msgstr ""
msgid "Lag"
msgstr ""
@@ -4082,6 +4093,10 @@ msgstr "%s proxy \"%s\" не найден\n"
msgid "%s%s: address \"%s\" not found"
msgstr "%s адрес \"%s\" не найден\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sСервер: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: proxy IP address not found"
msgstr "%s IP адрес proxy-сервера не найден\n"
@@ -4940,10 +4955,6 @@ msgstr ""
msgid "%s%s: unable to run function \"%s\""
msgstr "Не могу записать лог-файл \"%s\"\n"
#, fuzzy, c-format
msgid "%s%s: error: %s"
msgstr "%sСервер: %s%s\n"
#, fuzzy, c-format
msgid "%s%s: script \"%s\" not found"
msgstr "%s сервер \"%s\" не найден\n"
+17 -7
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2009-03-23 11:08+0100\n"
"POT-Creation-Date: 2009-03-27 16:41+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"
@@ -1432,6 +1432,9 @@ msgid ""
"unlimited)"
msgstr ""
msgid "minimum size in bits for handshake using Diffie Hellman key exchange"
msgstr ""
msgid ""
"comma separated list of plugins to load automatically at startup, \"*\" "
"means all plugins found (names may be partial, for example \"perl\" is ok "
@@ -1456,6 +1459,13 @@ msgstr ""
msgid "save configuration files when unloading plugins"
msgstr ""
msgid "FATAL: error initializing configuration options"
msgstr ""
#, c-format
msgid "%sError reading configuration"
msgstr ""
#, c-format
msgid "%sError: cannot create file \"%s\""
msgstr ""
@@ -2056,10 +2066,10 @@ msgstr ""
msgid "name of FIFO pipe"
msgstr ""
msgid "servers"
msgid "away"
msgstr ""
msgid "away"
msgid "servers"
msgstr ""
msgid "Lag"
@@ -3527,6 +3537,10 @@ msgstr ""
msgid "%s%s: address \"%s\" not found"
msgstr ""
#, c-format
msgid "%s%s: error: %s"
msgstr ""
#, c-format
msgid "%s%s: proxy IP address not found"
msgstr ""
@@ -4257,10 +4271,6 @@ msgstr ""
msgid "%s%s: unable to run function \"%s\""
msgstr ""
#, c-format
msgid "%s%s: error: %s"
msgstr ""
#, c-format
msgid "%s%s: script \"%s\" not found"
msgstr ""
+53 -3
View File
@@ -159,6 +159,10 @@ struct t_config_option *config_history_max_lines;
struct t_config_option *config_history_max_commands;
struct t_config_option *config_history_display_default;
/* config, network section */
struct t_config_option *config_network_gnutls_dh_prime_bits;
/* config, plugin section */
struct t_config_option *config_plugin_autoload;
@@ -978,12 +982,12 @@ config_weechat_key_write_cb (void *data, struct t_config_file *config_file,
}
/*
* config_weechat_init: init WeeChat config structure
* return: 1 if ok, 0 if error
* config_weechat_init_options: init WeeChat config structure (all core options)
* return: 1 if ok, 0 if error
*/
int
config_weechat_init ()
config_weechat_init_options ()
{
struct t_config_section *ptr_section;
@@ -1680,6 +1684,24 @@ config_weechat_init ()
}
weechat_config_section_proxy = ptr_section;
/* network */
ptr_section = config_file_new_section (weechat_config_file, "network",
0, 0,
NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL);
if (!ptr_section)
{
config_file_free (weechat_config_file);
return 0;
}
config_network_gnutls_dh_prime_bits = config_file_new_option (
weechat_config_file, ptr_section,
"gnutls_dh_prime_bitsmax_lines", "integer",
N_("minimum size in bits for handshake using Diffie Hellman key "
"exchange"),
NULL, 0, INT_MAX, "512", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL);
/* plugin */
ptr_section = config_file_new_section (weechat_config_file, "plugin",
@@ -1785,6 +1807,27 @@ config_weechat_init ()
return 1;
}
/*
* config_weechat_init: init WeeChat config structure
* return: 1 if ok, 0 if error
*/
int
config_weechat_init ()
{
int rc;
rc = config_weechat_init_options ();
if (!rc)
{
gui_chat_printf (NULL,
_("FATAL: error initializing configuration options"));
}
return rc;
}
/*
* config_weechat_read: read WeeChat configuration file
* return one of these values:
@@ -1806,6 +1849,13 @@ config_weechat_read ()
gui_bar_use_temp_bars ();
gui_bar_create_default ();
}
if (rc != WEECHAT_CONFIG_READ_OK)
{
gui_chat_printf (NULL,
_("%sError reading configuration"),
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]);
}
return rc;
}
+2
View File
@@ -159,6 +159,8 @@ extern struct t_config_option *config_history_max_lines;
extern struct t_config_option *config_history_max_commands;
extern struct t_config_option *config_history_display_default;
extern struct t_config_option *config_network_gnutls_dh_prime_bits;
extern struct t_config_option *config_plugin_autoload;
extern struct t_config_option *config_plugin_debug;
extern struct t_config_option *config_plugin_extension;
+1
View File
@@ -167,6 +167,7 @@ struct t_hook_process
/* hook connect */
typedef int (t_hook_callback_connect)(void *data, int status,
const char *error,
const char *ip_address);
struct t_hook_connect
+7 -4
View File
@@ -804,6 +804,8 @@ network_connect_child_read_cb (void *arg_hook_connect, int fd)
{
gnutls_transport_set_ptr (*HOOK_CONNECT(hook_connect, gnutls_sess),
(gnutls_transport_ptr) ((unsigned long) HOOK_CONNECT(hook_connect, sock)));
gnutls_dh_set_prime_bits (*HOOK_CONNECT(hook_connect, gnutls_sess),
CONFIG_INTEGER(config_network_gnutls_dh_prime_bits));
while (1)
{
rc = gnutls_handshake (*HOOK_CONNECT(hook_connect, gnutls_sess));
@@ -817,6 +819,7 @@ network_connect_child_read_cb (void *arg_hook_connect, int fd)
(void) (HOOK_CONNECT(hook_connect, callback))
(hook_connect->callback_data,
WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR,
gnutls_strerror (rc),
ip_address);
unhook (hook_connect);
if (ip_address)
@@ -827,7 +830,7 @@ network_connect_child_read_cb (void *arg_hook_connect, int fd)
#endif
}
(void) (HOOK_CONNECT(hook_connect, callback))
(hook_connect->callback_data, buffer[0] - '0', ip_address);
(hook_connect->callback_data, buffer[0] - '0', NULL, ip_address);
unhook (hook_connect);
}
@@ -858,7 +861,7 @@ network_connect_with_fork (struct t_hook *hook_connect)
(void) (HOOK_CONNECT(hook_connect, callback))
(hook_connect->callback_data,
'0' + WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR,
NULL);
NULL, NULL);
unhook (hook_connect);
return;
}
@@ -881,7 +884,7 @@ network_connect_with_fork (struct t_hook *hook_connect)
(void) (HOOK_CONNECT(hook_connect, callback))
(hook_connect->callback_data,
'0' + WEECHAT_HOOK_CONNECT_MEMORY_ERROR,
NULL);
NULL, NULL);
unhook (hook_connect);
return;
}
@@ -903,7 +906,7 @@ network_connect_with_fork (struct t_hook *hook_connect)
(void) (HOOK_CONNECT(hook_connect, callback))
(hook_connect->callback_data,
'0' + WEECHAT_HOOK_CONNECT_MEMORY_ERROR,
NULL);
NULL, NULL);
unhook (hook_connect);
return;
/* child process */
+66 -1
View File
@@ -1847,7 +1847,8 @@ irc_server_switch_address (struct t_irc_server *server)
*/
int
irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
irc_server_connect_cb (void *arg_server, int status, const char *error,
const char *ip_address)
{
struct t_irc_server *server;
const char *proxy;
@@ -1885,6 +1886,14 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
server->addresses_array[server->index_current_address]);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
error);
}
irc_server_close_connection (server);
irc_server_switch_address (server);
break;
@@ -1895,6 +1904,14 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: IP address not found"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
error);
}
irc_server_close_connection (server);
irc_server_switch_address (server);
break;
@@ -1905,6 +1922,14 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: connection refused"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
error);
}
irc_server_close_connection (server);
irc_server_switch_address (server);
break;
@@ -1917,6 +1942,14 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
"proxy)"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
error);
}
irc_server_close_connection (server);
irc_server_switch_address (server);
break;
@@ -1925,6 +1958,14 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: unable to set local hostname/IP"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
error);
}
irc_server_close_connection (server);
irc_server_reconnect_schedule (server);
break;
@@ -1933,6 +1974,14 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: TLS init error"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
error);
}
irc_server_close_connection (server);
irc_server_reconnect_schedule (server);
break;
@@ -1941,6 +1990,14 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: TLS handshake failed"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
error);
}
irc_server_close_connection (server);
irc_server_switch_address (server);
break;
@@ -1949,6 +2006,14 @@ irc_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: not enough memory"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
irc_buffer_get_server_prefix (server, "error"),
IRC_PLUGIN_NAME,
error);
}
irc_server_close_connection (server);
irc_server_reconnect_schedule (server);
break;
+66 -1
View File
@@ -539,7 +539,8 @@ jabber_server_login (struct t_jabber_server *server)
*/
int
jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
jabber_server_connect_cb (void *arg_server, int status, const char *error,
const char *ip_address)
{
struct t_jabber_server *server;
const char *proxy;
@@ -577,6 +578,14 @@ jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
server->address);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
error);
}
jabber_server_close_connection (server);
jabber_server_reconnect_schedule (server);
break;
@@ -587,6 +596,14 @@ jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: IP address not found"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
error);
}
jabber_server_close_connection (server);
jabber_server_reconnect_schedule (server);
break;
@@ -597,6 +614,14 @@ jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: connection refused"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
error);
}
jabber_server_close_connection (server);
jabber_server_reconnect_schedule (server);
break;
@@ -609,6 +634,14 @@ jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
"proxy)"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
error);
}
jabber_server_close_connection (server);
jabber_server_reconnect_schedule (server);
break;
@@ -617,6 +650,14 @@ jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: unable to set local hostname/IP"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
error);
}
jabber_server_close_connection (server);
jabber_server_reconnect_schedule (server);
break;
@@ -625,6 +666,14 @@ jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: GnuTLS init error"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
error);
}
jabber_server_close_connection (server);
jabber_server_reconnect_schedule (server);
break;
@@ -633,6 +682,14 @@ jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: GnuTLS handshake failed"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
error);
}
jabber_server_close_connection (server);
jabber_server_reconnect_schedule (server);
break;
@@ -641,6 +698,14 @@ jabber_server_connect_cb (void *arg_server, int status, const char *ip_address)
_("%s%s: not enough memory"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME);
if (error && error[0])
{
weechat_printf (server->buffer,
_("%s%s: error: %s"),
jabber_buffer_get_server_prefix (server, "error"),
JABBER_PLUGIN_NAME,
error);
}
jabber_server_close_connection (server);
jabber_server_reconnect_schedule (server);
break;
+5 -3
View File
@@ -3424,10 +3424,11 @@ weechat_lua_api_hook_process (lua_State *L)
*/
int
weechat_lua_api_hook_connect_cb (void *data, int status, const char *ip_address)
weechat_lua_api_hook_connect_cb (void *data, int status,
const char *error, const char *ip_address)
{
struct t_script_callback *script_callback;
char *lua_argv[3], str_status[32], empty_arg[1] = { '\0' };
char *lua_argv[4], str_status[32], empty_arg[1] = { '\0' };
int *rc, ret;
script_callback = (struct t_script_callback *)data;
@@ -3438,7 +3439,8 @@ weechat_lua_api_hook_connect_cb (void *data, int status, const char *ip_address)
lua_argv[0] = str_status;
lua_argv[1] = (ip_address) ? (char *)ip_address : empty_arg;
lua_argv[2] = NULL;
lua_argv[2] = (error) ? (char *)error : empty_arg;
lua_argv[3] = NULL;
rc = (int *) weechat_lua_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
+4 -3
View File
@@ -2862,10 +2862,10 @@ static XS (XS_weechat_api_hook_process)
int
weechat_perl_api_hook_connect_cb (void *data, int status,
const char *ip_address)
const char *error, const char *ip_address)
{
struct t_script_callback *script_callback;
char *perl_argv[3], str_status[32], empty_arg[1] = { '\0' };
char *perl_argv[4], str_status[32], empty_arg[1] = { '\0' };
int *rc, ret;
script_callback = (struct t_script_callback *)data;
@@ -2876,7 +2876,8 @@ weechat_perl_api_hook_connect_cb (void *data, int status,
perl_argv[0] = str_status;
perl_argv[1] = (ip_address) ? (char *)ip_address : empty_arg;
perl_argv[2] = NULL;
perl_argv[2] = (error) ? (char *)error : empty_arg;
perl_argv[3] = NULL;
rc = (int *) weechat_perl_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
@@ -3054,10 +3054,10 @@ weechat_python_api_hook_process (PyObject *self, PyObject *args)
int
weechat_python_api_hook_connect_cb (void *data, int status,
const char *ip_address)
const char *error, const char *ip_address)
{
struct t_script_callback *script_callback;
char *python_argv[3], str_status[32], empty_arg[1] = { '\0' };
char *python_argv[4], str_status[32], empty_arg[1] = { '\0' };
int *rc, ret;
script_callback = (struct t_script_callback *)data;
@@ -3068,7 +3068,8 @@ weechat_python_api_hook_connect_cb (void *data, int status,
python_argv[0] = str_status;
python_argv[1] = (ip_address) ? (char *)ip_address : empty_arg;
python_argv[2] = NULL;
python_argv[2] = (error) ? (char *)error : empty_arg;
python_argv[3] = NULL;
rc = (int *) weechat_python_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
+4 -3
View File
@@ -3494,10 +3494,10 @@ weechat_ruby_api_hook_process (VALUE class, VALUE command, VALUE timeout,
int
weechat_ruby_api_hook_connect_cb (void *data, int status,
const char *ip_address)
const char *error, const char *ip_address)
{
struct t_script_callback *script_callback;
char *ruby_argv[3], str_status[32], empty_arg[1] = { '\0' };
char *ruby_argv[4], str_status[32], empty_arg[1] = { '\0' };
int *rc, ret;
script_callback = (struct t_script_callback *)data;
@@ -3508,7 +3508,8 @@ weechat_ruby_api_hook_connect_cb (void *data, int status,
ruby_argv[0] = str_status;
ruby_argv[1] = (ip_address) ? (char *)ip_address : empty_arg;
ruby_argv[2] = NULL;
ruby_argv[2] = (error) ? (char *)error : empty_arg;
ruby_argv[3] = NULL;
rc = (int *) weechat_ruby_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
+3 -1
View File
@@ -917,7 +917,9 @@ script_api_hook_connect (struct t_weechat_plugin *weechat_plugin,
const char *proxy, const char *address, int port,
int sock, int ipv6, void *gnutls_sess,
const char *local_hostname,
int (*callback)(void *data, int status, const char *ip_address),
int (*callback)(void *data, int status,
const char *error,
const char *ip_address),
const char *function)
{
struct t_script_callback *new_script_callback;
+1
View File
@@ -159,6 +159,7 @@ extern struct t_hook *script_api_hook_connect (struct t_weechat_plugin *weechat_
const char *local_hostname,
int (*callback)(void *data,
int status,
const char *error,
const char *ip_address),
const char *function);
extern struct t_hook *script_api_hook_print (struct t_weechat_plugin *weechat_plugin,
+4 -3
View File
@@ -3274,10 +3274,10 @@ weechat_tcl_api_hook_process (ClientData clientData, Tcl_Interp *interp,
int
weechat_tcl_api_hook_connect_cb (void *data, int status,
const char *ip_address)
const char *error, const char *ip_address)
{
struct t_script_callback *script_callback;
char *tcl_argv[3], str_status[32], empty_arg[1] = { '\0' };
char *tcl_argv[4], str_status[32], empty_arg[1] = { '\0' };
int *rc, ret;
script_callback = (struct t_script_callback *)data;
@@ -3288,7 +3288,8 @@ weechat_tcl_api_hook_connect_cb (void *data, int status,
tcl_argv[0] = str_status;
tcl_argv[1] = (ip_address) ? (char *)ip_address : empty_arg;
tcl_argv[2] = NULL;
tcl_argv[2] = (error) ? (char *)error : empty_arg;
tcl_argv[3] = NULL;
rc = (int *) weechat_tcl_exec (script_callback->script,
WEECHAT_SCRIPT_EXEC_INT,
+1
View File
@@ -393,6 +393,7 @@ struct t_weechat_plugin
const char *local_hostname,
int (*callback)(void *data,
int status,
const char *error,
const char *ip_address),
void *callback_data);
struct t_hook *(*hook_print) (struct t_weechat_plugin *plugin,