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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user