From 0b12f76d1f429fcc1d6818ec1ceb6e1e7224b84e Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sun, 20 Jan 2002 11:37:21 +0000 Subject: Every time a /SET was changed, it leaked a signal_add() which would cause very buggy behaviour at least related to flood checking. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@2326 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/irc/flood/flood.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/irc') diff --git a/src/irc/flood/flood.c b/src/irc/flood/flood.c index d5339d4f..de7d292c 100644 --- a/src/irc/flood/flood.c +++ b/src/irc/flood/flood.c @@ -285,16 +285,19 @@ static void read_settings(void) flood_timecheck = settings_get_int("flood_timecheck"); flood_max_msgs = settings_get_int("flood_max_msgs"); - if (flood_tag != -1) { - g_source_remove(flood_tag); - flood_tag = -1; - } - if (flood_timecheck > 0 && flood_max_msgs > 0) { flood_tag = g_timeout_add(500, (GSourceFunc) flood_timeout, NULL); + signal_add("event privmsg", (SIGNAL_FUNC) flood_privmsg); signal_add("event notice", (SIGNAL_FUNC) flood_notice); signal_add("ctcp msg", (SIGNAL_FUNC) flood_ctcp); + } else if (flood_tag != -1) { + g_source_remove(flood_tag); + flood_tag = -1; + + signal_remove("event privmsg", (SIGNAL_FUNC) flood_privmsg); + signal_remove("event notice", (SIGNAL_FUNC) flood_notice); + signal_remove("ctcp msg", (SIGNAL_FUNC) flood_ctcp); } } -- cgit v1.2.3