summaryrefslogtreecommitdiff
path: root/src/irc/flood
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2002-01-20 11:37:21 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2002-01-20 11:37:21 +0000
commit0b12f76d1f429fcc1d6818ec1ceb6e1e7224b84e (patch)
treeeb6f1e8c43e3d3b38091fb5bca670b4aa7e6ba12 /src/irc/flood
parentbba5603903722221bd2f319835e924baf74b2b30 (diff)
downloadirssi-0b12f76d1f429fcc1d6818ec1ceb6e1e7224b84e.zip
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
Diffstat (limited to 'src/irc/flood')
-rw-r--r--src/irc/flood/flood.c13
1 files changed, 8 insertions, 5 deletions
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);
}
}