diff options
author | TingPing <tingping@tingping.se> | 2013-10-14 17:25:21 -0400 |
---|---|---|
committer | TingPing <tingping@tingping.se> | 2013-10-14 17:25:21 -0400 |
commit | 490b9a91e4e17ef1efad992a315ad264293907cf (patch) | |
tree | 9b7eccfbd0f2b97f6b52af8c87dd22a0627ae3c4 /src/common/ignore.c | |
parent | 80cbc74b2b97e637822449600805752e8b399beb (diff) |
Don't overwrite existing ignores when flooded
Closes #792
Diffstat (limited to 'src/common/ignore.c')
-rw-r--r-- | src/common/ignore.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/common/ignore.c b/src/common/ignore.c index 5bd6a6a5..045224ba 100644 --- a/src/common/ignore.c +++ b/src/common/ignore.c @@ -77,7 +77,7 @@ ignore_exists (char *mask) */ int -ignore_add (char *mask, int type) +ignore_add (char *mask, int type, gboolean overwrite) { struct ignore *ig = 0; int change_only = FALSE; @@ -94,7 +94,11 @@ ignore_add (char *mask, int type) return 0; ig->mask = strdup (mask); - ig->type = type; + + if (!overwrite && change_only) + ig->type |= type; + else + ig->type = type; if (!change_only) ignore_list = g_slist_prepend (ignore_list, ig); @@ -376,16 +380,14 @@ flood_check (char *nick, char *ip, server *serv, session *sess, int what) /*0=ct if (ip[i] == '@') break; snprintf (real_ip, sizeof (real_ip), "*!*%s", &ip[i]); - /*ignore_add (char *mask, int priv, int noti, int chan, - int ctcp, int invi, int unignore, int no_save) */ snprintf (buf, sizeof (buf), _("You are being CTCP flooded from %s, ignoring %s\n"), nick, real_ip); PrintText (sess, buf); - /*FIXME: only ignore ctcp or all?, its ignoring ctcps for now */ - ignore_add (real_ip, IG_CTCP); + /* ignore CTCP */ + ignore_add (real_ip, IG_CTCP, FALSE); return 0; } } @@ -410,12 +412,9 @@ flood_check (char *nick, char *ip, server *serv, session *sess, int what) /*0=ct PrintText (sess, buf); serv->msg_last_time = current_time; /*we got the flood, restore all the vars for next one */ serv->msg_counter = 0; - /*ignore_add (char *mask, int priv, int noti, int chan, - int ctcp, int invi, int unignore, int no_save) */ if (prefs.hex_gui_autoopen_dialog) { - /*FIXME: only ignore ctcp or all?, its ignoring ctcps for now */ prefs.hex_gui_autoopen_dialog = 0; /* turn it back on in 30 secs */ fe_timeout_add (30000, flood_autodialog_timeout, NULL); |