1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-09 11:25:42 +02:00

Add new IRC output queue for messages with low priority (like automatic CTCP replies), high priority is given to user messages or commands

This commit is contained in:
Sebastien Helleu
2010-01-17 15:56:28 +01:00
parent 9595fa75b2
commit 2eb82a08b1
21 changed files with 300 additions and 128 deletions
+3 -1
View File
@@ -1,7 +1,7 @@
WeeChat ChangeLog
=================
FlashCode <flashcode@flashtux.org>
v0.3.1-dev, 2010-01-11
v0.3.1-dev, 2010-01-17
Version 0.3.1 (under dev!)
@@ -27,6 +27,8 @@ Version 0.3.1 (under dev!)
* irc: add new commands /allchan and /allserv with excluding option, commands
/ame and /amsg are now aliases, new aliases /aaway and /anick
* irc: add options to customize target buffer for messages (task #7381)
* irc: add new output queue for messages with low priority (like automatic CTCP
replies), high priority is given to user messages or commands
* irc: use self-signed certificate to auto identify on IRC server (CertFP)
(task #7492, debian #453348)
* irc: check SSL certificates (task #7492)
+8 -3
View File
@@ -153,10 +153,15 @@
** type: boolean
** values: on, off (default value: off)
* *irc.network.anti_flood*
** description: anti-flood: # seconds between two user messages (0 = no anti-flood)
* *irc.network.anti_flood_prio_high*
** description: anti-flood for high priority queue: number of seconds between two user messages or commands sent to IRC server (0 = no anti-flood)
** type: integer
** values: 0 .. 5 (default value: 2)
** values: 0 .. 60 (default value: 2)
* *irc.network.anti_flood_prio_low*
** description: anti-flood for low priority queue: number of seconds between two messages sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)
** type: integer
** values: 0 .. 60 (default value: 2)
* *irc.network.away_check*
** description: interval between two checks for away (in minutes, 0 = never check)
+8 -3
View File
@@ -153,10 +153,15 @@
** type: booléen
** valeurs: on, off (valeur par défaut: off)
* *irc.network.anti_flood*
** description: anti-flood: nombre de secondes entre deux messages utilisateur (0 = pas d'anti-flood)
* *irc.network.anti_flood_prio_high*
** description: anti-flood pour la file d'attente haute priorité : nombre de secondes entre deux messages utilisateur ou commandes envoyés au serveur IRC (0 = pas d'anti-flood)
** type: entier
** valeurs: 0 .. 5 (valeur par défaut: 2)
** valeurs: 0 .. 60 (valeur par défaut: 2)
* *irc.network.anti_flood_prio_low*
** description: anti-flood pour la file d'attente basse priorité : nombre de secondes entre deux messages envoyés au serveur IRC (messages comme les réponses automatiques aux CTCP) (0 = pas d'anti-flood)
** type: entier
** valeurs: 0 .. 60 (valeur par défaut: 2)
* *irc.network.away_check*
** description: intervalle entre deux vérifications des absences (en minutes, 0 = ne jamais vérifier)
+8 -3
View File
@@ -153,10 +153,15 @@
** tipo: bool
** valori: on, off (valore predefinito: off)
* *irc.network.anti_flood*
** descrizione: anti-flood: # secondi tra due messaggi utente (0 = nessun anti-flood)
* *irc.network.anti_flood_prio_high*
** descrizione: anti-flood for high priority queue: number of seconds between two user messages or commands sent to IRC server (0 = no anti-flood)
** tipo: intero
** valori: 0 .. 5 (valore predefinito: 2)
** valori: 0 .. 60 (valore predefinito: 2)
* *irc.network.anti_flood_prio_low*
** descrizione: anti-flood for low priority queue: number of seconds between two messages sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)
** tipo: intero
** valori: 0 .. 60 (valore predefinito: 2)
* *irc.network.away_check*
** descrizione: intervallo tra le due verifiche per l'assenza (in minuti, 0 = nessun check)
+13 -2
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-14 10:20+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+0100\n"
"PO-Revision-Date: 2010-01-03 15:15+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4196,7 +4196,18 @@ msgstr "minimální lag, který zobrazit (v sekundách)"
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr "odpojit po závažném lagu (v minutách, 0 = nikny neodpojit)"
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
#, fuzzy
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr ""
"anti-flood: počet sekund mezi dvěmi uživatelovými zprávami (0 = vypnutí anti-"
"flood)"
#, fuzzy
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr ""
"anti-flood: počet sekund mezi dvěmi uživatelovými zprávami (0 = vypnutí anti-"
"flood)"
+13 -2
View File
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-14 10:20+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+0100\n"
"PO-Revision-Date: 2010-01-14 15:43+0100\n"
"Last-Translator: Nils G <weechatter@arcor.de>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4382,7 +4382,18 @@ msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"Maximal-Lag bis zum Trennen der Verbindung (in Minuten - 0 = niemals trennen)"
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
#, fuzzy
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr ""
"anti-flood: # Sekunden zwischen zwei Benutzernachrichten (0 = kein anti-"
"flood)"
#, fuzzy
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr ""
"anti-flood: # Sekunden zwischen zwei Benutzernachrichten (0 = kein anti-"
"flood)"
+12 -2
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-14 10:20+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+0100\n"
"PO-Revision-Date: 2010-01-03 15:16+0100\n"
"Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4289,7 +4289,17 @@ msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"desconexión tras un retraso importante (en minutos, 0 = no desconectar nunca)"
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
#, fuzzy
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr ""
"anti-flood: # segundos entre 2 mensajes de un usuario (0 = sin anti-flood"
#, fuzzy
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr ""
"anti-flood: # segundos entre 2 mensajes de un usuario (0 = sin anti-flood"
+15 -4
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-14 10:20+0100\n"
"PO-Revision-Date: 2010-01-14 10:21+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+0100\n"
"PO-Revision-Date: 2010-01-17 15:44+0100\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -4317,11 +4317,22 @@ msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"déconnexion après un lag important (en minutes, 0 = ne jamais se déconnecter)"
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr ""
"anti-flood: nombre de secondes entre deux messages utilisateur (0 = pas "
"anti-flood pour la file d'attente haute priorité : nombre de secondes entre "
"deux messages utilisateur ou commandes envoyés au serveur IRC (0 = pas "
"d'anti-flood)"
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr ""
"anti-flood pour la file d'attente basse priorité : nombre de secondes entre "
"deux messages envoyés au serveur IRC (messages comme les réponses "
"automatiques aux CTCP) (0 = pas d'anti-flood)"
msgid "when off, colors codes are ignored in incoming messages"
msgstr "si désactivé, les codes couleurs des messages entrants sont ignorés"
+11 -2
View File
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-14 10:20+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+0100\n"
"PO-Revision-Date: 2010-01-03 15:16+0100\n"
"Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4138,7 +4138,16 @@ msgstr "minimális kijelzett késés (másodpercben)"
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr "lekapcsolódás túl nagy késés esetén (percben, 0 = nincs lecsatlakozás)"
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
#, fuzzy
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr "anti-flood: # másodperc két üzenet között (0 = anti-flood kikapcsolva)"
#, fuzzy
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr "anti-flood: # másodperc két üzenet között (0 = anti-flood kikapcsolva)"
msgid "when off, colors codes are ignored in incoming messages"
+11 -2
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Weechat 0.31-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-14 10:20+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+0100\n"
"PO-Revision-Date: 2010-01-09 23:03+0100\n"
"Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4290,7 +4290,16 @@ msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"disconnetti dopo un ritardo eccessivo (in minuti, 0 = nessuna disconnessione)"
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
#, fuzzy
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr "anti-flood: # secondi tra due messaggi utente (0 = nessun anti-flood)"
#, fuzzy
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr "anti-flood: # secondi tra due messaggi utente (0 = nessun anti-flood)"
msgid "when off, colors codes are ignored in incoming messages"
+13 -2
View File
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.0-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-14 10:20+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+0100\n"
"PO-Revision-Date: 2010-01-17 00:15+0100\n"
"Last-Translator: Krzysztof Koroscik <soltys@szluug.org>\n"
"Language-Team: Polish\n"
@@ -4268,7 +4268,18 @@ msgstr "minimalne opóźnienie do pokazania (w sekundach)"
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr "rozłącz po dużym opóźnieniu (w minutach, 0 = nie rozłączaj nigdy)"
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
#, fuzzy
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr ""
"anty-flood: # sekund pomiędzy dwoma wiadomościami użytkownika (0 - brak anty-"
"flood)"
#, fuzzy
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr ""
"anty-flood: # sekund pomiędzy dwoma wiadomościami użytkownika (0 - brak anty-"
"flood)"
+11 -2
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.3.1-dev\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
"POT-Creation-Date: 2010-01-14 10:20+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+0100\n"
"PO-Revision-Date: 2010-01-03 15:16+0100\n"
"Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -4139,7 +4139,16 @@ msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
"отключаться при серьёзной задержке (в минутах, 0 = не отключаться никогда)"
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
#, fuzzy
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr "анти-флуд; интервал отправки сообщений в секундах (0 = без анти-флуда)"
#, fuzzy
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr "анти-флуд; интервал отправки сообщений в секундах (0 = без анти-флуда)"
msgid "when off, colors codes are ignored in incoming messages"
+9 -2
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-01-14 10:20+0100\n"
"POT-Creation-Date: 2010-01-17 15:43+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"
@@ -3520,7 +3520,14 @@ msgstr ""
msgid "disconnect after important lag (in minutes, 0 = never disconnect)"
msgstr ""
msgid "anti-flood: # seconds between two user messages (0 = no anti-flood)"
msgid ""
"anti-flood for high priority queue: number of seconds between two user "
"messages or commands sent to IRC server (0 = no anti-flood)"
msgstr ""
msgid ""
"anti-flood for low priority queue: number of seconds between two messages "
"sent to IRC server (messages like automatic CTCP replies) (0 = no anti-flood)"
msgstr ""
msgid "when off, colors codes are ignored in incoming messages"
+2 -1
View File
@@ -365,7 +365,8 @@ irc_channel_check_away (struct t_irc_server *server,
|| (channel->nicks_count <= weechat_config_integer (irc_config_network_away_check_max_nicks)))
{
channel->checking_away++;
irc_server_sendf (server, 1, "WHO %s", channel->name);
irc_server_sendf (server, IRC_SERVER_OUTQUEUE_PRIO_LOW,
"WHO %s", channel->name);
}
else
irc_channel_remove_away (channel);
File diff suppressed because it is too large Load Diff
+13 -6
View File
@@ -90,7 +90,7 @@ struct t_config_option *irc_config_network_away_check_max_nicks;
struct t_config_option *irc_config_network_lag_check;
struct t_config_option *irc_config_network_lag_min_show;
struct t_config_option *irc_config_network_lag_disconnect;
struct t_config_option *irc_config_network_anti_flood;
struct t_config_option *irc_config_network_anti_flood[2];
struct t_config_option *irc_config_network_colors_receive;
struct t_config_option *irc_config_network_colors_send;
struct t_config_option *irc_config_network_send_unknown_commands;
@@ -1559,12 +1559,19 @@ irc_config_init ()
N_("disconnect after important lag (in minutes, 0 = never "
"disconnect)"),
NULL, 0, INT_MAX, "0", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL);
irc_config_network_anti_flood = weechat_config_new_option (
irc_config_network_anti_flood[0] = weechat_config_new_option (
irc_config_file, ptr_section,
"anti_flood", "integer",
N_("anti-flood: # seconds between two user messages (0 = no "
"anti-flood)"),
NULL, 0, 5, "2", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL);
"anti_flood_prio_high", "integer",
N_("anti-flood for high priority queue: number of seconds between two "
"user messages or commands sent to IRC server (0 = no anti-flood)"),
NULL, 0, 60, "2", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL);
irc_config_network_anti_flood[1] = weechat_config_new_option (
irc_config_file, ptr_section,
"anti_flood_prio_low", "integer",
N_("anti-flood for low priority queue: number of seconds between two "
"messages sent to IRC server (messages like automatic CTCP replies) "
"(0 = no anti-flood)"),
NULL, 0, 60, "2", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL);
irc_config_network_colors_receive = weechat_config_new_option (
irc_config_file, ptr_section,
"colors_receive", "boolean",
+1 -1
View File
@@ -108,7 +108,7 @@ extern struct t_config_option *irc_config_network_away_check_max_nicks;
extern struct t_config_option *irc_config_network_lag_check;
extern struct t_config_option *irc_config_network_lag_min_show;
extern struct t_config_option *irc_config_network_lag_disconnect;
extern struct t_config_option *irc_config_network_anti_flood;
extern struct t_config_option *irc_config_network_anti_flood[2];
extern struct t_config_option *irc_config_network_colors_receive;
extern struct t_config_option *irc_config_network_colors_send;
extern struct t_config_option *irc_config_network_send_unknown_commands;
+1 -1
View File
@@ -245,7 +245,7 @@ irc_ctcp_reply_to_nick (struct t_irc_server *server,
const char *nick, const char *ctcp,
const char *arguments)
{
irc_server_sendf (server, 1,
irc_server_sendf (server, IRC_SERVER_OUTQUEUE_PRIO_LOW,
"NOTICE %s :\01%s%s%s\01",
nick, ctcp,
(arguments) ? " " : "",
+4 -3
View File
@@ -124,8 +124,8 @@ irc_input_send_user_message (struct t_gui_buffer *buffer, char *text)
}
}
irc_server_sendf (ptr_server, 1, "PRIVMSG %s :%s",
ptr_channel->name, text);
irc_server_sendf (ptr_server, IRC_SERVER_OUTQUEUE_PRIO_HIGH,
"PRIVMSG %s :%s", ptr_channel->name, text);
irc_input_user_message_display (buffer, text);
if (next)
@@ -157,7 +157,8 @@ irc_input_data_cb (void *data, struct t_gui_buffer *buffer,
&& (input_data[0] == '/') && (input_data[1] != '/'))
{
if (ptr_server)
irc_server_sendf (ptr_server, 1, input_data + 1);
irc_server_sendf (ptr_server, IRC_SERVER_OUTQUEUE_PRIO_HIGH,
input_data + 1);
return WEECHAT_RC_OK;
}
File diff suppressed because it is too large Load Diff
+9 -3
View File
@@ -83,6 +83,10 @@ enum t_irc_server_option
#define IRC_SERVER_DEFAULT_NICKS "weechat1,weechat2,weechat3," \
"weechat4,weechat5"
#define IRC_SERVER_OUTQUEUE_PRIO_HIGH 1
#define IRC_SERVER_OUTQUEUE_PRIO_LOW 2
#define IRC_SERVER_NUM_OUTQUEUES_PRIO 2
/* output queue of messages to server (for sending slowly to server) */
struct t_irc_outqueue
@@ -137,8 +141,9 @@ struct t_irc_server
time_t lag_next_check; /* time for next check */
regex_t *cmd_list_regexp; /* compiled Regular Expression for /list */
time_t last_user_message; /* time of last user message (anti flood)*/
struct t_irc_outqueue *outqueue; /* queue for outgoing user msgs */
struct t_irc_outqueue *last_outqueue; /* last outgoing user message */
struct t_irc_outqueue *outqueue[2]; /* queue for outgoing messages */
/* with 2 priorities (high/low) */
struct t_irc_outqueue *last_outqueue[2]; /* last outgoing message */
struct t_gui_buffer *buffer; /* GUI buffer allocated for server */
char *buffer_as_string; /* used to return buffer info */
struct t_irc_channel *channels; /* opened channels on server */
@@ -194,7 +199,8 @@ extern void irc_server_autojoin_channels ();
extern int irc_server_recv_cb (void *arg_server, int fd);
extern int irc_server_timer_cb (void *data, int remaining_calls);
extern int irc_server_timer_check_away_cb (void *data, int remaining_calls);
extern void irc_server_outqueue_free_all (struct t_irc_server *server);
extern void irc_server_outqueue_free_all (struct t_irc_server *server,
int priority);
extern int irc_server_get_channel_count (struct t_irc_server *server);
extern int irc_server_get_pv_count (struct t_irc_server *server);
extern void irc_server_set_away (struct t_irc_server *server, const char *nick,