mirror of
https://github.com/weechat/weechat.git
synced 2026-06-26 04:46:37 +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:
@@ -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: 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
|
||||
in signal_data
|
||||
|
||||
@@ -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