Stop griefing through taunting while hiding behind CALLERID.

This shouldn't provide any way for a client to get on a CALLERID list
without authorization, as if a client is +g already, a CTCP request, for
example, won't be replied to.
This commit is contained in:
William Pitcock 2010-07-03 00:44:55 -05:00
parent 659dbfa585
commit 5b71b8ec50
1 changed files with 11 additions and 0 deletions

View File

@ -783,6 +783,17 @@ msg_client(int p_or_n, const char *command,
sendto_one_numeric(source_p, RPL_AWAY, form_str(RPL_AWAY), sendto_one_numeric(source_p, RPL_AWAY, form_str(RPL_AWAY),
target_p->name, target_p->user->away); target_p->name, target_p->user->away);
/*
* XXX: Controversial? Allow target users to send replies through a +g.
* Rationale is that people can presently use +g as a way to taunt users,
* e.g. harass them and hide behind +g as a way of griefing. --nenolod
*/
if(MyClient(source_p) && IsSetCallerId(source_p) && !accept_message(target_p, source_p))
{
rb_dlinkAddAlloc(target_p, &source_p->localClient->allow_list);
rb_dlinkAddAlloc(source_p, &target_p->on_allow_list);
}
if(MyClient(target_p)) if(MyClient(target_p))
{ {
if (IsSetNoCTCP(target_p) && p_or_n != NOTICE && *text == '\001' && strncasecmp(text + 1, "ACTION", 6)) if (IsSetNoCTCP(target_p) && p_or_n != NOTICE && *text == '\001' && strncasecmp(text + 1, "ACTION", 6))