relay: add option relay.network.clients_purge_delay

This commit is contained in:
Sebastien Helleu 2014-02-23 20:32:42 +01:00
parent 897bb0950c
commit fdfee08cf8
22 changed files with 138 additions and 18 deletions

View File

@ -48,6 +48,7 @@ http://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
* lua: fix interpreter used after unload of a script
* perl: fix context used after unload of a script
* python: fix interpreter used after unload of a script
* relay: add option relay.network.clients_purge_delay
* relay: fix freeze after /upgrade when many disconnected clients still exist
* relay: fix NULL pointer when reading buffer lines for irc backlog
* scripts: fix crash when a signal is received with type "int" and NULL pointer

View File

@ -88,6 +88,11 @@
** Typ: Zeichenkette
** Werte: beliebige Zeichenkette (Standardwert: `""`)
* [[option_relay.network.clients_purge_delay]] *relay.network.clients_purge_delay*
** Beschreibung: `delay for purging disconnected clients (in minutes, 0 = purge clients immediately, -1 = never purge)`
** Typ: integer
** Werte: -1 .. 43200 (Standardwert: `0`)
* [[option_relay.network.compression_level]] *relay.network.compression_level*
** Beschreibung: `Kompressionsstärke der Pakete die durch das WeeChat Protokoll an den Client gesendet werden sollen (0 = Kompression deaktiviert, 1 = niedrige Kompression ... 9 = stärkste Kompression)`
** Typ: integer

View File

@ -88,6 +88,11 @@
** type: string
** values: any string (default value: `""`)
* [[option_relay.network.clients_purge_delay]] *relay.network.clients_purge_delay*
** description: `delay for purging disconnected clients (in minutes, 0 = purge clients immediately, -1 = never purge)`
** type: integer
** values: -1 .. 43200 (default value: `0`)
* [[option_relay.network.compression_level]] *relay.network.compression_level*
** description: `compression level for packets sent to client with WeeChat protocol (0 = disable compression, 1 = low compression ... 9 = best compression)`
** type: integer

View File

@ -88,6 +88,11 @@
** type: chaîne
** valeurs: toute chaîne (valeur par défaut: `""`)
* [[option_relay.network.clients_purge_delay]] *relay.network.clients_purge_delay*
** description: `délai pour purger les clients déconnectés (en minutes, 0 = purger les clients immédiatement, -1 = ne jamais purger)`
** type: entier
** valeurs: -1 .. 43200 (valeur par défaut: `0`)
* [[option_relay.network.compression_level]] *relay.network.compression_level*
** description: `niveau de compression pour les paquets envoyés au client avec le protocole WeeChat (0 = désactiver la compression, 1 = peu de compression ... 9 = meilleure compression)`
** type: entier

View File

@ -88,6 +88,11 @@
** tipo: stringa
** valori: qualsiasi stringa (valore predefinito: `""`)
* [[option_relay.network.clients_purge_delay]] *relay.network.clients_purge_delay*
** descrizione: `delay for purging disconnected clients (in minutes, 0 = purge clients immediately, -1 = never purge)`
** tipo: intero
** valori: -1 .. 43200 (valore predefinito: `0`)
* [[option_relay.network.compression_level]] *relay.network.compression_level*
** descrizione: `livello di compressione per i pacchetti inviati al client con il protocollo WeeChat (0 = disabilita compressione, 1 = compressione bassa ... 9 = compressione migliore)`
** tipo: intero

View File

@ -88,6 +88,11 @@
** タイプ: 文字列
** 値: 未制約文字列 (デフォルト値: `""`)
* [[option_relay.network.clients_purge_delay]] *relay.network.clients_purge_delay*
** 説明: `delay for purging disconnected clients (in minutes, 0 = purge clients immediately, -1 = never purge)`
** タイプ: 整数
** 値: -1 .. 43200 (デフォルト値: `0`)
* [[option_relay.network.compression_level]] *relay.network.compression_level*
** 説明: `WeeChat プロトコルでクライアントに送信するパケットの圧縮レベル (0 = 圧縮しない、1 = 低圧縮 ... 9 = 高圧縮)`
** タイプ: 整数

View File

@ -88,6 +88,11 @@
** typ: ciąg
** wartości: dowolny ciąg (domyślna wartość: `""`)
* [[option_relay.network.clients_purge_delay]] *relay.network.clients_purge_delay*
** opis: `delay for purging disconnected clients (in minutes, 0 = purge clients immediately, -1 = never purge)`
** typ: liczba
** wartości: -1 .. 43200 (domyślna wartość: `0`)
* [[option_relay.network.compression_level]] *relay.network.compression_level*
** opis: `stopień kompresji pakietów wysyłanych do klienta za pomocą protokołu WeeChat (0 = kompresja wyłączona, 1 = niska kompresja ... 9 = najwyższa kompresja)`
** typ: liczba

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:24+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -8864,6 +8864,11 @@ msgstr ""
"rozhranních, použijte \"127.0.0.1\" pro povolení připojení pouze z lokálního "
"počítače)"
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:24+0100\n"
"Last-Translator: Nils Görs <weechatter@arcor.de>\n"
"Language-Team: German <weechatter@arcor.de>\n"
@ -9862,6 +9862,11 @@ msgstr ""
"Interfaces möglich. Wird die Adresse \"127.0.0.1\" genutzt kann nur eine "
"Verbindung mit dem lokalen Rechner hergestellt werden)"
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:25+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -9149,6 +9149,11 @@ msgstr ""
"interfaces, usa \"127.0.0.1\" para permitir conexiones de la máquina local "
"solamente)"
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -21,8 +21,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"PO-Revision-Date: 2014-02-21 17:57+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-23 20:29+0100\n"
"Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"Language: fr\n"
@ -9622,6 +9622,13 @@ msgstr ""
"interfaces, utiliser \"127.0.0.1\" pour autoriser les connections depuis la "
"machine locale seulement)"
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
"délai pour purger les clients déconnectés (en minutes, 0 = purger les "
"clients immédiatement, -1 = ne jamais purger)"
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:25+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -8290,6 +8290,11 @@ msgid ""
"\"127.0.0.1\" to allow connections from local machine only)"
msgstr ""
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:25+0100\n"
"Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -9293,6 +9293,11 @@ msgstr ""
"le interfacce, usare \"127.0.0.1\" per consentire le connessioni solo dalla "
"macchina locale)"
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:25+0100\n"
"Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n"
"Language-Team: Japanese <https://github.com/l/WeeChat>\n"
@ -9274,6 +9274,11 @@ msgstr ""
"割り当てるアドレス (空の場合、全てのインターフェイスからの接続を受け付け"
"る、\"127.0.0.1\" を使えばローカルマシンからの接続のみ許可)"
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:25+0100\n"
"Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -9449,6 +9449,11 @@ msgstr ""
"interfejsach, użyj \"127.0.0.1\", aby pozwolić tylko na połączenia z tej "
"maszyny)"
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:25+0100\n"
"Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -8509,6 +8509,11 @@ msgstr ""
"endereço para associação (se vazio, a conexão será possível em todas as "
"interfaces, use \"127.0.0.1\" para permitir somente conexões locais)"
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-20 12:25+0100\n"
"Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -8317,6 +8317,11 @@ msgid ""
"\"127.0.0.1\" to allow connections from local machine only)"
msgstr ""
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2014-02-16 11:21+0100\n"
"Last-Translator: Hasan Kiran <sunder67@hotmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -7418,6 +7418,11 @@ msgid ""
"\"127.0.0.1\" to allow connections from local machine only)"
msgstr ""
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.4.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2014-02-21 17:56+0100\n"
"POT-Creation-Date: 2014-02-23 20:28+0100\n"
"PO-Revision-Date: 2013-02-14 18:20+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@ -7378,6 +7378,11 @@ msgid ""
"\"127.0.0.1\" to allow connections from local machine only)"
msgstr ""
msgid ""
"delay for purging disconnected clients (in minutes, 0 = purge clients "
"immediately, -1 = never purge)"
msgstr ""
msgid ""
"compression level for packets sent to client with WeeChat protocol (0 = "
"disable compression, 1 = low compression ... 9 = best compression)"

View File

@ -822,18 +822,34 @@ relay_client_send (struct t_relay_client *client, const char *data,
int
relay_client_timer_cb (void *data, int remaining_calls)
{
struct t_relay_client *ptr_client;
int num_sent, i;
struct t_relay_client *ptr_client, *ptr_next_client;
int num_sent, i, purge_delay;
char *buf;
time_t current_time;
/* make C compiler happy */
(void) data;
(void) remaining_calls;
for (ptr_client = relay_clients; ptr_client;
ptr_client = ptr_client->next_client)
purge_delay = weechat_config_integer (relay_config_network_clients_purge_delay);
current_time = time (NULL);
ptr_client = relay_clients;
while (ptr_client)
{
if (ptr_client->sock >= 0)
ptr_next_client = ptr_client->next_client;
if (RELAY_CLIENT_HAS_ENDED(ptr_client))
{
if ((purge_delay >= 0)
&& (current_time >= ptr_client->end_time + (purge_delay * 60)))
{
relay_client_free (ptr_client);
relay_buffer_refresh (NULL);
}
}
else if (ptr_client->sock >= 0)
{
while (ptr_client->outqueue)
{
@ -960,6 +976,8 @@ relay_client_timer_cb (void *data, int remaining_calls)
}
}
}
ptr_client = ptr_next_client;
}
return WEECHAT_RC_OK;

View File

@ -52,6 +52,7 @@ struct t_config_option *relay_config_color_text_selected;
struct t_config_option *relay_config_network_allowed_ips;
struct t_config_option *relay_config_network_bind_address;
struct t_config_option *relay_config_network_clients_purge_delay;
struct t_config_option *relay_config_network_compression_level;
struct t_config_option *relay_config_network_ipv6;
struct t_config_option *relay_config_network_max_clients;
@ -604,6 +605,13 @@ relay_config_init ()
"local machine only)"),
NULL, 0, 0, "", NULL, 0, NULL, NULL,
&relay_config_change_network_bind_address_cb, NULL, NULL, NULL);
relay_config_network_clients_purge_delay = weechat_config_new_option (
relay_config_file, ptr_section,
"clients_purge_delay", "integer",
N_("delay for purging disconnected clients (in minutes, 0 = purge "
"clients immediately, -1 = never purge)"),
NULL, -1, 60 * 24 * 30, "0", NULL, 0,
NULL, NULL, NULL, NULL, NULL, NULL);
relay_config_network_compression_level = weechat_config_new_option (
relay_config_file, ptr_section,
"compression_level", "integer",

View File

@ -38,6 +38,7 @@ extern struct t_config_option *relay_config_color_text_selected;
extern struct t_config_option *relay_config_network_allowed_ips;
extern struct t_config_option *relay_config_network_bind_address;
extern struct t_config_option *relay_config_network_clients_purge_delay;
extern struct t_config_option *relay_config_network_compression_level;
extern struct t_config_option *relay_config_network_ipv6;
extern struct t_config_option *relay_config_network_max_clients;