1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 05:16:38 +02:00

relay: fix freeze after /upgrade when many disconnected clients still exist

The hooks for the WeeChat disconnected clients are not created again
after /upgrade (they were removed on client disconnection, so there is
no reason to create them again).

The hooks like nicklist sync are called often (for example on irc
disconnection), which can cause long freeze if many WeeChat disconnected
clients exist in relay.
This commit is contained in:
Sebastien Helleu
2014-02-23 13:07:45 +01:00
parent 1cd1877128
commit 897bb0950c
2 changed files with 9 additions and 1 deletions
+8 -1
View File
@@ -260,7 +260,14 @@ relay_weechat_alloc_with_infolist (struct t_relay_client *client,
&relay_weechat_free_buffers_nicklist);
RELAY_WEECHAT_DATA(client, hook_timer_nicklist) = NULL;
relay_weechat_hook_signals (client);
if (RELAY_CLIENT_HAS_ENDED(client))
{
RELAY_WEECHAT_DATA(client, hook_signal_buffer) = NULL;
RELAY_WEECHAT_DATA(client, hook_hsignal_nicklist) = NULL;
RELAY_WEECHAT_DATA(client, hook_signal_upgrade) = NULL;
}
else
relay_weechat_hook_signals (client);
}
}