irc: send signal "irc_server_lag_changed", store lag in server buffer
The lag is stored in the local variable "lag" of the server buffer. When there is no lag, the local variable does not exist.v2.8-utf8proc
parent
9a8ec36cbd
commit
d31e4f1d9a
|
@ -9017,6 +9017,11 @@ List of signals sent by WeeChat and plugins:
|
|||
String: server name. |
|
||||
Disconnected from server.
|
||||
|
||||
| irc | irc_server_lag_changed +
|
||||
_(WeeChat ≥ 1.8)_ |
|
||||
String: server name. |
|
||||
Lag changed on the server.
|
||||
|
||||
| irc | irc_ignore_removing |
|
||||
Pointer: ignore. |
|
||||
Removing ignore.
|
||||
|
|
|
@ -9198,6 +9198,11 @@ Liste des signaux envoyés par WeeChat et les extensions :
|
|||
Chaîne : nom du serveur. |
|
||||
Déconnecté du serveur.
|
||||
|
||||
| irc | irc_server_lag_changed +
|
||||
_(WeeChat ≥ 1.8)_ |
|
||||
Chaîne : nom du serveur. |
|
||||
Le lag a changé sur le serveur.
|
||||
|
||||
| irc | irc_ignore_removing |
|
||||
Pointeur : ignore. |
|
||||
Suppression d'un ignore en cours.
|
||||
|
|
|
@ -9293,6 +9293,12 @@ List of signals sent by WeeChat and plugins:
|
|||
String: nome server. |
|
||||
Disconnesso dal server.
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| irc | irc_server_lag_changed +
|
||||
_(WeeChat ≥ 1.8)_ |
|
||||
String: server name. |
|
||||
Lag changed on the server.
|
||||
|
||||
| irc | irc_ignore_removing |
|
||||
Puntatore: ignore. |
|
||||
Rimozione dell'ignore.
|
||||
|
|
|
@ -9066,6 +9066,12 @@ WeeChat とプラグインが送信するシグナルのリスト:
|
|||
String: サーバ名 |
|
||||
サーバから切断された
|
||||
|
||||
// TRANSLATION MISSING
|
||||
| irc | irc_server_lag_changed +
|
||||
_(WeeChat バージョン 1.8 以上で利用可)_ |
|
||||
String: サーバ名 |
|
||||
Lag changed on the server.
|
||||
|
||||
| irc | irc_ignore_removing |
|
||||
Pointer: 無視 |
|
||||
無視条件を削除中
|
||||
|
|
|
@ -1838,17 +1838,19 @@ IRC_PROTOCOL_CALLBACK(pong)
|
|||
gettimeofday (&tv, NULL);
|
||||
server->lag = (int)(weechat_util_timeval_diff (&(server->lag_check_time),
|
||||
&tv) / 1000);
|
||||
if (server->lag != server->lag_displayed)
|
||||
{
|
||||
server->lag_displayed = server->lag;
|
||||
weechat_bar_item_update ("lag");
|
||||
}
|
||||
|
||||
/* schedule next lag check */
|
||||
server->lag_check_time.tv_sec = 0;
|
||||
server->lag_check_time.tv_usec = 0;
|
||||
server->lag_next_check = time (NULL) +
|
||||
weechat_config_integer (irc_config_network_lag_check);
|
||||
|
||||
/* refresh lag bar item if needed */
|
||||
if (server->lag != server->lag_displayed)
|
||||
{
|
||||
server->lag_displayed = server->lag;
|
||||
irc_server_set_lag (server);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -785,6 +785,34 @@ irc_server_set_prefix_modes_chars (struct t_irc_server *server,
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets lag in server buffer (local variable), update bar item "lag"
|
||||
* and send signal "irc_server_lag_changed" for the server.
|
||||
*/
|
||||
|
||||
void
|
||||
irc_server_set_lag (struct t_irc_server *server)
|
||||
{
|
||||
char str_lag[32];
|
||||
|
||||
if (server->lag >= weechat_config_integer (irc_config_network_lag_min_show))
|
||||
{
|
||||
snprintf (str_lag, sizeof (str_lag),
|
||||
((server->lag_check_time.tv_sec == 0) || (server->lag < 1000)) ?
|
||||
"%.3f" : "%.0f",
|
||||
((float)(server->lag)) / 1000);
|
||||
weechat_buffer_set (server->buffer, "localvar_set_lag", str_lag);
|
||||
}
|
||||
else
|
||||
{
|
||||
weechat_buffer_set (server->buffer, "localvar_del_lag", "");
|
||||
}
|
||||
weechat_hook_signal_send ("irc_server_lag_changed",
|
||||
WEECHAT_HOOK_SIGNAL_STRING,
|
||||
server->name);
|
||||
weechat_bar_item_update ("lag");
|
||||
}
|
||||
|
||||
/*
|
||||
* Gets prefix_modes for server (for example: "ohv").
|
||||
*
|
||||
|
@ -3105,7 +3133,7 @@ irc_server_timer_cb (const void *pointer, void *data, int remaining_calls)
|
|||
struct t_irc_redirect *ptr_redirect, *ptr_next_redirect;
|
||||
time_t current_time;
|
||||
static struct timeval tv;
|
||||
int away_check;
|
||||
int away_check, refresh_lag;
|
||||
|
||||
/* make C compiler happy */
|
||||
(void) pointer;
|
||||
|
@ -3179,6 +3207,7 @@ irc_server_timer_cb (const void *pointer, void *data, int remaining_calls)
|
|||
/* compute lag */
|
||||
if (ptr_server->lag_check_time.tv_sec != 0)
|
||||
{
|
||||
refresh_lag = 0;
|
||||
gettimeofday (&tv, NULL);
|
||||
ptr_server->lag = (int)(weechat_util_timeval_diff (&(ptr_server->lag_check_time),
|
||||
&tv) / 1000);
|
||||
|
@ -3191,7 +3220,7 @@ irc_server_timer_cb (const void *pointer, void *data, int remaining_calls)
|
|||
if (ptr_server->lag != ptr_server->lag_displayed)
|
||||
{
|
||||
ptr_server->lag_displayed = ptr_server->lag;
|
||||
weechat_bar_item_update ("lag");
|
||||
refresh_lag = 1;
|
||||
}
|
||||
}
|
||||
/* lag timeout? => disconnect */
|
||||
|
@ -3219,7 +3248,7 @@ irc_server_timer_cb (const void *pointer, void *data, int remaining_calls)
|
|||
if (ptr_server->lag != ptr_server->lag_displayed)
|
||||
{
|
||||
ptr_server->lag_displayed = ptr_server->lag;
|
||||
weechat_bar_item_update ("lag");
|
||||
refresh_lag = 1;
|
||||
}
|
||||
|
||||
/* schedule next lag check in 5 seconds */
|
||||
|
@ -3229,6 +3258,8 @@ irc_server_timer_cb (const void *pointer, void *data, int remaining_calls)
|
|||
weechat_config_integer (irc_config_network_lag_check);
|
||||
}
|
||||
}
|
||||
if (refresh_lag)
|
||||
irc_server_set_lag (ptr_server);
|
||||
}
|
||||
|
||||
/* remove redirects if timeout occurs */
|
||||
|
@ -4831,6 +4862,7 @@ irc_server_disconnect (struct t_irc_server *server, int switch_address,
|
|||
server->lag_next_check = time (NULL) +
|
||||
weechat_config_integer (irc_config_network_lag_check);
|
||||
server->lag_last_refresh = 0;
|
||||
irc_server_set_lag (server);
|
||||
server->monitor = 0;
|
||||
server->monitor_time = 0;
|
||||
|
||||
|
|
|
@ -289,6 +289,7 @@ extern const char *irc_server_get_isupport_value (struct t_irc_server *server,
|
|||
const char *feature);
|
||||
extern void irc_server_set_prefix_modes_chars (struct t_irc_server *server,
|
||||
const char *prefix);
|
||||
extern void irc_server_set_lag (struct t_irc_server *server);
|
||||
extern const char *irc_server_get_prefix_modes (struct t_irc_server *server);
|
||||
extern const char *irc_server_get_prefix_chars (struct t_irc_server *server);
|
||||
extern int irc_server_get_prefix_mode_index (struct t_irc_server *server,
|
||||
|
|
Loading…
Reference in New Issue