1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 21:36:37 +02:00

Add new options irc.network.autoreconnect_delay_growing and irc.network.autoreconnect_delay_max (task #10338)

This commit is contained in:
Sebastien Helleu
2010-04-21 23:24:05 +02:00
parent 9cbcc24d4c
commit 87d29b1987
21 changed files with 237 additions and 27 deletions
+3 -1
View File
@@ -1,12 +1,14 @@
WeeChat ChangeLog
=================
FlashCode <flashcode@flashtux.org>
v0.3.3-dev, 2010-04-20
v0.3.3-dev, 2010-04-21
Version 0.3.3 (under dev!)
--------------------------
* irc: add new options irc.network.autoreconnect_delay_growing and
irc.network.autoreconnect_delay_max (task #10338)
* irc: add new option irc.color.item_buffer_name_ssl (task #10339)
* irc: try other nick when connecting to server and receiving message 437
(nick unavailable)
+11 -1
View File
@@ -193,6 +193,16 @@
** type: integer
** values: 0 .. 60 (default value: 2)
* *irc.network.autoreconnect_delay_growing*
** description: growing factor for autoreconnect delay to server (1 = always same delay, 2 = delay*2 for each retry, ..)
** type: integer
** values: 1 .. 100 (default value: 2)
* *irc.network.autoreconnect_delay_max*
** description: maximum autoreconnect delay to server (in seconds, 0 = no maximum)
** type: integer
** values: 0 .. 86400 (default value: 1800)
* *irc.network.away_check*
** description: interval between two checks for away (in minutes, 0 = never check)
** type: integer
@@ -271,7 +281,7 @@
* *irc.server_default.autoreconnect_delay*
** description: delay (in seconds) before trying again to reconnect to server
** type: integer
** values: 0 .. 65535 (default value: 30)
** values: 1 .. 65535 (default value: 10)
* *irc.server_default.autorejoin*
** description: automatically rejoin channels after kick
+11 -1
View File
@@ -193,6 +193,16 @@
** type: entier
** valeurs: 0 .. 60 (valeur par défaut: 2)
* *irc.network.autoreconnect_delay_growing*
** description: facteur de croissance du délai d'autoreconnection au serveur (1 = toujours le même délai, 2 = délai*2 pour chaque tentative, etc...)
** type: entier
** valeurs: 1 .. 100 (valeur par défaut: 2)
* *irc.network.autoreconnect_delay_max*
** description: délai maximum d'autoreconnection au serveur (en secondes, 0 = pas de maximum)
** type: entier
** valeurs: 0 .. 86400 (valeur par défaut: 1800)
* *irc.network.away_check*
** description: intervalle entre deux vérifications des absences (en minutes, 0 = ne jamais vérifier)
** type: entier
@@ -271,7 +281,7 @@
* *irc.server_default.autoreconnect_delay*
** description: délai (en secondes) avant de tenter une reconnexion au serveur
** type: entier
** valeurs: 0 .. 65535 (valeur par défaut: 30)
** valeurs: 1 .. 65535 (valeur par défaut: 10)
* *irc.server_default.autorejoin*
** description: rejoindre automatiquement les canaux après un "kick"
+11 -1
View File
@@ -193,6 +193,16 @@
** tipo: intero
** valori: 0 .. 60 (valore predefinito: 2)
* *irc.network.autoreconnect_delay_growing*
** descrizione: growing factor for autoreconnect delay to server (1 = always same delay, 2 = delay*2 for each retry, ..)
** tipo: intero
** valori: 1 .. 100 (valore predefinito: 2)
* *irc.network.autoreconnect_delay_max*
** descrizione: maximum autoreconnect delay to server (in seconds, 0 = no maximum)
** tipo: intero
** valori: 0 .. 86400 (valore predefinito: 1800)
* *irc.network.away_check*
** descrizione: intervallo tra le due verifiche per l'assenza (in minuti, 0 = nessun check)
** tipo: intero
@@ -271,7 +281,7 @@
* *irc.server_default.autoreconnect_delay*
** descrizione: ritardo (in secondi) prima di effettuare una nuova connessione al server
** tipo: intero
** valori: 0 .. 65535 (valore predefinito: 30)
** valori: 1 .. 65535 (valore predefinito: 10)
* *irc.server_default.autorejoin*
** descrizione: rientra automaticamente nei canali dopo il kick
+13 -1
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.3-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-04-20 22:08+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\n"
"PO-Revision-Date: 2010-04-18 10:50+0200\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4493,6 +4493,14 @@ msgstr "barva módů kanálu, blízko jména kanálu"
msgid "color for buffer name when connected using SSL to server"
msgstr "%s%s: nejste připojen k serveru"
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -5076,6 +5084,10 @@ msgstr "%s%s: vypršel čas pro sasl autentizaci"
msgid "%s: lag is high, disconnecting from server..."
msgstr "%s: zpoždění je veliké, odpojuji se od serveru..."
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr "%s: navazuji nové spojení se serverem za %d %s"
#, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr "%s: navazuji nové spojení se serverem za %d %s"
+13 -1
View File
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.3-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-04-20 22:08+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\n"
"PO-Revision-Date: 2010-04-18 10:50+0200\n"
"Last-Translator: Nils G <weechatter@arcor.de>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4664,6 +4664,14 @@ msgstr "Farbe der Channel-Modes (neben dem Channelnamen)"
msgid "color for buffer name when connected using SSL to server"
msgstr "%s%s: Es besteht keine Verbindung zum Server"
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -5248,6 +5256,10 @@ msgstr "%s%s: Zeitüberschreitung bei SASL Authentifizierung"
msgid "%s: lag is high, disconnecting from server..."
msgstr "%s: Lag ist zu hoch, die Verbindung wird getrennt..."
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr "%s: Verbinde erneut zum Server in %d %s"
#, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr "%s: Verbinde erneut zum Server in %d %s"
+13 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.3-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-04-20 22:08+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\n"
"PO-Revision-Date: 2010-04-18 10:50+0200\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4560,6 +4560,14 @@ msgstr "color para los modos del canal, junto al nombre del canal"
msgid "color for buffer name when connected using SSL to server"
msgstr "%s%s: no estas conectado a ningún servidor"
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -5140,6 +5148,10 @@ msgstr "%s%s: la autenticación SASL agotó el tiempo de espera"
msgid "%s: lag is high, disconnecting from server..."
msgstr "%s: el retraso es alto, desconectando del servidor..."
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr "%s: reconectando al servidor en %d %s"
#, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr "%s: reconectando al servidor en %d %s"
+17 -2
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.3-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-04-20 22:08+0200\n"
"PO-Revision-Date: 2010-04-20 22:03+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\n"
"PO-Revision-Date: 2010-04-21 22:17+0200\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -4594,6 +4594,17 @@ msgid "color for buffer name when connected using SSL to server"
msgstr ""
"couleur pour le nom du tampon lorsque la connexion au serveur utilise SSL"
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
"facteur de croissance du délai d'autoreconnection au serveur (1 = toujours "
"le même délai, 2 = délai*2 pour chaque tentative, etc...)"
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
"délai maximum d'autoreconnection au serveur (en secondes, 0 = pas de maximum)"
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -5177,6 +5188,10 @@ msgstr "%s%s: délai d'authentification sasl dépassé"
msgid "%s: lag is high, disconnecting from server..."
msgstr "%s: le lag est élevé, déconnexion du serveur..."
#, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr "%s: reconnexion au serveur dans %d %s, %d %s"
#, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr "%s: reconnexion au serveur dans %d %s"
+13 -1
View File
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.3-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-04-20 22:08+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\n"
"PO-Revision-Date: 2010-04-18 10:51+0200\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4311,6 +4311,14 @@ msgstr "szobanevek színe az eseményekben"
msgid "color for buffer name when connected using SSL to server"
msgstr "%s nincs csatlakozva szerverhez!\n"
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -4885,6 +4893,10 @@ msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n"
msgid "%s: lag is high, disconnecting from server..."
msgstr "%s túl nagy a késés(lag), lecsatlakozás a szerverről...\n"
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr "%s: Újracsatlakozás a szerverhez %d másodperc múlva\n"
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr "%s: Újracsatlakozás a szerverhez %d másodperc múlva\n"
+13 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Weechat 0.3.3-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-04-20 22:08+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\n"
"PO-Revision-Date: 2010-04-18 10:51+0200\n"
"Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4567,6 +4567,14 @@ msgstr "colore per le modalità dei canali, vicino ai nomi dei canali"
msgid "color for buffer name when connected using SSL to server"
msgstr "%s%s: non connesso al server"
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -5144,6 +5152,10 @@ msgstr "%s%s: timeout dell'autenticazione sasl"
msgid "%s: lag is high, disconnecting from server..."
msgstr "%s: ritardo eccessivo, disconnessione dal server..."
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr "%s: riconnessione al server tra %d %s"
#, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr "%s: riconnessione al server tra %d %s"
+13 -1
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.3-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-04-20 22:08+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\n"
"PO-Revision-Date: 2010-04-18 10:51+0200\n"
"Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n"
"Language-Team: Polish\n"
@@ -4538,6 +4538,14 @@ msgstr "kolor trybów kanału, przy nazwie kanału"
msgid "color for buffer name when connected using SSL to server"
msgstr "%s%s: nie jesteś połączony z serwerem"
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -5118,6 +5126,10 @@ msgstr "%s%s: przekroczono czas uwieżyteniania sasl"
msgid "%s: lag is high, disconnecting from server..."
msgstr "%s: za duze opóźnienie, rozłączam z serwerem..."
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr "%s: ponowne połączenie za %d %s"
#, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr "%s: ponowne połączenie za %d %s"
+13 -1
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.3-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-04-20 22:08+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\n"
"PO-Revision-Date: 2010-04-18 10:51+0200\n"
"Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4312,6 +4312,14 @@ msgstr "цвет имён при действиях"
msgid "color for buffer name when connected using SSL to server"
msgstr "%s вы не подключены к серверу\n"
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -4893,6 +4901,10 @@ msgstr "Не могу записать лог-файл \"%s\"\n"
msgid "%s: lag is high, disconnecting from server..."
msgstr "%s задержка слишком высокая, отключаюсь от сервера...\n"
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr "%s: Повторное подключение к серверу через %d секунд\n"
#, fuzzy, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr "%s: Повторное подключение к серверу через %d секунд\n"
+13 -1
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: 2010-04-20 22:08+0200\n"
"POT-Creation-Date: 2010-04-21 23:20+0200\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"
@@ -3688,6 +3688,14 @@ msgstr ""
msgid "color for buffer name when connected using SSL to server"
msgstr ""
msgid ""
"growing factor for autoreconnect delay to server (1 = always same delay, 2 = "
"delay*2 for each retry, ..)"
msgstr ""
msgid "maximum autoreconnect delay to server (in seconds, 0 = no maximum)"
msgstr ""
msgid ""
"timeout (in seconds) between TCP connection to server and message 001 "
"received, if this timeout is reached before 001 message is received, WeeChat "
@@ -4220,6 +4228,10 @@ msgstr ""
msgid "%s: lag is high, disconnecting from server..."
msgstr ""
#, c-format
msgid "%s: reconnecting to server in %d %s, %d %s"
msgstr ""
#, c-format
msgid "%s: reconnecting to server in %d %s"
msgstr ""
+2
View File
@@ -684,6 +684,7 @@ irc_command_connect_one_server (struct t_irc_server *server, int no_join)
server->disable_autojoin = no_join;
if (irc_server_connect (server))
{
server->reconnect_delay = 0;
server->reconnect_start = 0;
server->reconnect_join = (server->channels) ? 1 : 0;
}
@@ -2960,6 +2961,7 @@ irc_command_reconnect_one_server (struct t_irc_server *server, int no_join)
server->disable_autojoin = no_join;
if (irc_server_connect (server))
{
server->reconnect_delay = 0;
server->reconnect_start = 0;
server->reconnect_join = (server->channels) ? 1 : 0;
}
+16 -1
View File
@@ -91,6 +91,8 @@ struct t_config_option *irc_config_color_item_buffer_name_ssl;
/* IRC config, network section */
struct t_config_option *irc_config_network_autoreconnect_delay_growing;
struct t_config_option *irc_config_network_autoreconnect_delay_max;
struct t_config_option *irc_config_network_connection_timeout;
struct t_config_option *irc_config_network_default_msg_part;
struct t_config_option *irc_config_network_default_msg_quit;
@@ -1056,7 +1058,7 @@ irc_config_server_new_option (struct t_config_file *config_file,
config_file, section,
option_name, "integer",
N_("delay (in seconds) before trying again to reconnect to server"),
NULL, 0, 65535,
NULL, 1, 65535,
default_value, value,
null_value_allowed,
NULL, NULL,
@@ -1655,6 +1657,19 @@ irc_config_init ()
return 0;
}
irc_config_network_autoreconnect_delay_growing = weechat_config_new_option (
irc_config_file, ptr_section,
"autoreconnect_delay_growing", "integer",
N_("growing factor for autoreconnect delay to server (1 = always same "
"delay, 2 = delay*2 for each retry, ..)"),
NULL, 1, 100, "2", NULL, 0, NULL, NULL,
NULL, NULL, NULL, NULL);
irc_config_network_autoreconnect_delay_max = weechat_config_new_option (
irc_config_file, ptr_section,
"autoreconnect_delay_max", "integer",
N_("maximum autoreconnect delay to server (in seconds, 0 = no maximum)"),
NULL, 0, 3600 * 24, "1800", NULL, 0, NULL, NULL,
NULL, NULL, NULL, NULL);
irc_config_network_connection_timeout = weechat_config_new_option (
irc_config_file, ptr_section,
"connection_timeout", "integer",
+2
View File
@@ -107,6 +107,8 @@ extern struct t_config_option *irc_config_color_item_away;
extern struct t_config_option *irc_config_color_item_channel_modes;
extern struct t_config_option *irc_config_color_item_buffer_name_ssl;
extern struct t_config_option *irc_config_network_autoreconnect_delay_growing;
extern struct t_config_option *irc_config_network_autoreconnect_delay_max;
extern struct t_config_option *irc_config_network_connection_timeout;
extern struct t_config_option *irc_config_network_default_msg_part;
extern struct t_config_option *irc_config_network_default_msg_quit;
+1
View File
@@ -1784,6 +1784,7 @@ IRC_PROTOCOL_CALLBACK(001)
/* connection to IRC server is ok! */
server->is_connected = 1;
server->reconnect_delay = 0;
if (server->hook_timer_connection)
{
weechat_unhook (server->hook_timer_connection);
+55 -10
View File
@@ -73,7 +73,7 @@ char *irc_server_option_default[IRC_SERVER_NUM_OPTIONS] =
{ "", "", "off",
"off", "", "2048", "on",
"", "plain", "", "", "15",
"off", "on", "30",
"off", "on", "10",
"", "", "", "",
"", "0", "", "off", "30",
};
@@ -356,6 +356,7 @@ irc_server_alloc (const char *name)
new_server->nick = NULL;
new_server->nick_modes = NULL;
new_server->prefix = NULL;
new_server->reconnect_delay = 0;
new_server->reconnect_start = 0;
new_server->command_time = 0;
new_server->reconnect_join = 0;
@@ -1858,9 +1859,10 @@ irc_server_timer_cb (void *data, int remaining_calls)
/* check if reconnection is pending */
if ((!ptr_server->is_connected)
&& (ptr_server->reconnect_start > 0)
&& (new_time >= (ptr_server->reconnect_start +
IRC_SERVER_OPTION_INTEGER(ptr_server, IRC_SERVER_OPTION_AUTORECONNECT_DELAY))))
&& (new_time >= (ptr_server->reconnect_start + ptr_server->reconnect_delay)))
{
irc_server_reconnect (ptr_server);
}
else
{
if (ptr_server->is_connected)
@@ -2010,21 +2012,57 @@ irc_server_close_connection (struct t_irc_server *server)
void
irc_server_reconnect_schedule (struct t_irc_server *server)
{
int delay;
int minutes, seconds;
server->index_current_address = 0;
if (IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_AUTORECONNECT))
{
/* growing reconnect delay */
if (server->reconnect_delay == 0)
server->reconnect_delay = IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTORECONNECT_DELAY);
else
server->reconnect_delay = server->reconnect_delay * weechat_config_integer (irc_config_network_autoreconnect_delay_growing);
if ((weechat_config_integer (irc_config_network_autoreconnect_delay_max) > 0)
&& (server->reconnect_delay > weechat_config_integer (irc_config_network_autoreconnect_delay_max)))
server->reconnect_delay = weechat_config_integer (irc_config_network_autoreconnect_delay_max);
server->reconnect_start = time (NULL);
delay = IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTORECONNECT_DELAY);
weechat_printf (server->buffer,
_("%s: reconnecting to server in %d %s"),
IRC_PLUGIN_NAME,
delay,
NG_("second", "seconds", delay));
minutes = server->reconnect_delay / 60;
seconds = server->reconnect_delay % 60;
if ((minutes > 0) && (seconds > 0))
{
weechat_printf (server->buffer,
_("%s: reconnecting to server in %d %s, %d %s"),
IRC_PLUGIN_NAME,
minutes,
NG_("minute", "minutes", minutes),
seconds,
NG_("second", "seconds", seconds));
}
else if (minutes > 0)
{
weechat_printf (server->buffer,
_("%s: reconnecting to server in %d %s"),
IRC_PLUGIN_NAME,
minutes,
NG_("minute", "minutes", minutes));
}
else
{
weechat_printf (server->buffer,
_("%s: reconnecting to server in %d %s"),
IRC_PLUGIN_NAME,
seconds,
NG_("second", "seconds", seconds));
}
}
else
{
server->reconnect_delay = 0;
server->reconnect_start = 0;
}
}
/*
@@ -2855,6 +2893,7 @@ irc_server_reconnect (struct t_irc_server *server)
weechat_printf (server->buffer,
_("%s: reconnecting to server..."),
IRC_PLUGIN_NAME);
server->reconnect_start = 0;
server->index_current_address = 0;
@@ -2943,7 +2982,10 @@ irc_server_disconnect (struct t_irc_server *server, int reconnect)
&& IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_AUTORECONNECT))
irc_server_reconnect_schedule (server);
else
{
server->reconnect_delay = 0;
server->reconnect_start = 0;
}
/* discard current nick if no reconnection asked */
if (!reconnect && server->nick)
@@ -3513,6 +3555,8 @@ irc_server_add_to_infolist (struct t_infolist *infolist,
return 0;
if (!weechat_infolist_new_var_string (ptr_item, "prefix", server->prefix))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "reconnect_delay", server->reconnect_delay))
return 0;
if (!weechat_infolist_new_var_time (ptr_item, "reconnect_start", server->reconnect_start))
return 0;
if (!weechat_infolist_new_var_time (ptr_item, "command_time", server->command_time))
@@ -3748,6 +3792,7 @@ irc_server_print_log ()
weechat_log_printf (" nick . . . . . . . . : '%s'", ptr_server->nick);
weechat_log_printf (" nick_modes . . . . . : '%s'", ptr_server->nick_modes);
weechat_log_printf (" prefix . . . . . . . : '%s'", ptr_server->prefix);
weechat_log_printf (" reconnect_delay. . . : %d", ptr_server->reconnect_delay);
weechat_log_printf (" reconnect_start. . . : %ld", ptr_server->reconnect_start);
weechat_log_printf (" command_time . . . . : %ld", ptr_server->command_time);
weechat_log_printf (" reconnect_join . . . : %d", ptr_server->reconnect_join);
+1
View File
@@ -138,6 +138,7 @@ struct t_irc_server
char *nick; /* current nickname */
char *nick_modes; /* nick modes */
char *prefix; /* nick prefix allowed (from msg 005) */
int reconnect_delay; /* current reconnect delay (growing) */
time_t reconnect_start; /* this time + delay = reconnect time */
time_t command_time; /* this time + command_delay = time to */
/* autojoin channels */
+1
View File
@@ -256,6 +256,7 @@ irc_upgrade_read_cb (void *data,
str = weechat_infolist_string (infolist, "prefix");
if (str)
irc_upgrade_current_server->prefix = strdup (str);
irc_upgrade_current_server->reconnect_delay = weechat_infolist_integer (infolist, "reconnect_delay");
irc_upgrade_current_server->reconnect_start = weechat_infolist_time (infolist, "reconnect_start");
irc_upgrade_current_server->command_time = weechat_infolist_time (infolist, "command_time");
irc_upgrade_current_server->reconnect_join = weechat_infolist_integer (infolist, "reconnect_join");
+2 -2
View File
@@ -125,8 +125,8 @@ irc_signal_upgrade_cb (void *data, const char *signal, const char *type_data,
* 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;
ptr_server->reconnect_delay = IRC_SERVER_OPTION_INTEGER(ptr_server, IRC_SERVER_OPTION_AUTORECONNECT_DELAY);
ptr_server->reconnect_start = time (NULL) - ptr_server->reconnect_delay - 1;
}
}
if (disconnected > 0)