This commit is contained in:
B.Greenham 2010-02-23 00:54:16 -05:00
commit 92504d43b1
4 changed files with 9 additions and 1 deletions

View File

@ -28,6 +28,7 @@ NO PARAMETERS:
(however, new forwards can still be set subject to +F). (however, new forwards can still be set subject to +F).
+C - Disable CTCP. All CTCP messages to the channel, except ACTION, +C - Disable CTCP. All CTCP messages to the channel, except ACTION,
are disallowed. are disallowed.
+T - Disable notice. All notices to the channel are disallowed.
WITH PARAMETERS: WITH PARAMETERS:
+f - Forward. Forwards users who cannot join because of +i, +f - Forward. Forwards users who cannot join because of +i,

View File

@ -172,6 +172,7 @@ typedef int (*ExtbanFunc)(const char *data, struct Client *client_p,
#define MODE_FREETARGET 0x1000 /* can be forwarded to without authorization */ #define MODE_FREETARGET 0x1000 /* can be forwarded to without authorization */
#define MODE_DISFORWARD 0x2000 /* disable channel forwarding */ #define MODE_DISFORWARD 0x2000 /* disable channel forwarding */
#define MODE_NOCTCP 0x8000 /* Block CTCPs directed to this channel */ #define MODE_NOCTCP 0x8000 /* Block CTCPs directed to this channel */
#define MODE_NONOTICE 0x16000 /* Block notices directed to this channel */
#define CHFL_BAN 0x10000000 /* ban channel flag */ #define CHFL_BAN 0x10000000 /* ban channel flag */
#define CHFL_EXCEPTION 0x20000000 /* exception to ban channel flag */ #define CHFL_EXCEPTION 0x20000000 /* exception to ban channel flag */

View File

@ -513,6 +513,12 @@ msg_channel(int p_or_n, const char *command,
if(result == CAN_SEND_OPV || if(result == CAN_SEND_OPV ||
!flood_attack_channel(p_or_n, source_p, chptr, chptr->chname)) !flood_attack_channel(p_or_n, source_p, chptr, chptr->chname))
{ {
if (p_or_n != PRIVMSG && chptr->mode.mode & MODE_NONOTICE)
{
sendto_one_numeric(source_p, ERR_CANNOTSENDTOCHAN,
form_str(ERR_CANNOTSENDTOCHAN), chptr->chname);
return;
}
if (p_or_n != NOTICE && *text == '\001' && if (p_or_n != NOTICE && *text == '\001' &&
strncasecmp(text + 1, "ACTION", 6)) strncasecmp(text + 1, "ACTION", 6))
{ {

View File

@ -1416,7 +1416,7 @@ struct ChannelMode chmode_table[256] =
{chm_simple, MODE_DISFORWARD }, /* Q */ {chm_simple, MODE_DISFORWARD }, /* Q */
{chm_nosuch, 0 }, /* R */ {chm_nosuch, 0 }, /* R */
{chm_nosuch, 0 }, /* S */ {chm_nosuch, 0 }, /* S */
{chm_nosuch, 0 }, /* T */ {chm_simple, MODE_NONOTICE }, /* T */
{chm_nosuch, 0 }, /* U */ {chm_nosuch, 0 }, /* U */
{chm_nosuch, 0 }, /* V */ {chm_nosuch, 0 }, /* V */
{chm_nosuch, 0 }, /* W */ {chm_nosuch, 0 }, /* W */