mirror of
https://github.com/matrix-construct/construct
synced 2024-12-27 07:54:05 +01:00
Merge +C (no CTCP to channels) from ircd-seven.
This commit is contained in:
parent
fdb90316e1
commit
2e918bf515
4 changed files with 15 additions and 5 deletions
|
@ -26,6 +26,8 @@ NO PARAMETERS:
|
||||||
ops are necessary).
|
ops are necessary).
|
||||||
+Q - Disable forward. Users cannot be forwarded to the channel
|
+Q - Disable forward. Users cannot be forwarded to the channel
|
||||||
(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,
|
||||||
|
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,
|
||||||
|
|
|
@ -171,6 +171,7 @@ typedef int (*ExtbanFunc)(const char *data, struct Client *client_p,
|
||||||
#define MODE_FREEINVITE 0x0800 /* allow free use of /invite */
|
#define MODE_FREEINVITE 0x0800 /* allow free use of /invite */
|
||||||
#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 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 */
|
||||||
|
|
|
@ -513,12 +513,19 @@ 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 != NOTICE && *text == '\001')
|
||||||
|
{
|
||||||
|
if (strncasecmp(text + 1, "ACTION", 6) && 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,
|
sendto_channel_flags(client_p, ALL_MEMBERS, source_p, chptr,
|
||||||
"%s %s :%s", command, chptr->chname, text);
|
"%s %s :%s", command, chptr->chname, text);
|
||||||
if (p_or_n != NOTICE && *text == '\001' &&
|
|
||||||
strncasecmp(text + 1, "ACTION", 6) &&
|
|
||||||
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 &&
|
else if(chptr->mode.mode & MODE_OPMODERATE &&
|
||||||
|
|
|
@ -1399,7 +1399,7 @@ struct ChannelMode chmode_table[256] =
|
||||||
{chm_nosuch, 0 }, /* @ */
|
{chm_nosuch, 0 }, /* @ */
|
||||||
{chm_nosuch, 0 }, /* A */
|
{chm_nosuch, 0 }, /* A */
|
||||||
{chm_nosuch, 0 }, /* B */
|
{chm_nosuch, 0 }, /* B */
|
||||||
{chm_nosuch, 0 }, /* C */
|
{chm_simple, MODE_NOCTCP }, /* C */
|
||||||
{chm_nosuch, 0 }, /* D */
|
{chm_nosuch, 0 }, /* D */
|
||||||
{chm_nosuch, 0 }, /* E */
|
{chm_nosuch, 0 }, /* E */
|
||||||
{chm_simple, MODE_FREETARGET }, /* F */
|
{chm_simple, MODE_FREETARGET }, /* F */
|
||||||
|
|
Loading…
Reference in a new issue