if(result == CAN_SEND_OPV ||
!flood_attack_channel(p_or_n, source_p, chptr, chptr->chname))
{
+ if (p_or_n != NOTICE && *text == '\001' &&
+ strncasecmp(text + 1, "ACTION", 6))
+ {
+ if (chptr->mode.mode & MODE_NOCTCP)
+ {
+ sendto_one_numeric(source_p, ERR_CANNOTSENDTOCHAN,
+ form_str(ERR_CANNOTSENDTOCHAN), chptr->chname);
+ return;
+ }
+ else if (rb_dlink_list_length(&chptr->locmembers) > (unsigned)(GlobalSetOptions.floodcount / 2))
+ source_p->large_ctcp_sent = rb_current_time();
+ }
sendto_channel_flags(client_p, ALL_MEMBERS, source_p, chptr,
"%s %s :%s", command, chptr->chname, text);
- if (p_or_n != NOTICE && *text == '\001' &&
- rb_dlink_list_length(&chptr->locmembers) > (unsigned)(GlobalSetOptions.floodcount / 2))
- source_p->large_ctcp_sent = rb_current_time();
}
}
else if(chptr->mode.mode & MODE_OPMODERATE &&
msg_client(int p_or_n, const char *command,
struct Client *source_p, struct Client *target_p, const char *text)
{
- const char *awaymsg;
int do_floodcount = 0;
if(MyClient(source_p))
return;
}
- if(MyConnect(source_p) && (p_or_n != NOTICE) && target_p->user && (awaymsg = get_metadata(target_p, "away")) != NULL)
+ if(MyConnect(source_p) && (p_or_n != NOTICE) && target_p->user && target_p->user->away)
sendto_one_numeric(source_p, RPL_AWAY, form_str(RPL_AWAY),
- target_p->name, awaymsg);
+ target_p->name, target_p->user->away);
if(MyClient(target_p))
{