X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/fbd2e5da560cd1dced36115537021136ea953c25..cb097b8840594b6a77aab21d0b4c20f036a7d012:/modules/core/m_kick.c?ds=sidebyside diff --git a/modules/core/m_kick.c b/modules/core/m_kick.c index 8ed49f4..2dcdcc5 100644 --- a/modules/core/m_kick.c +++ b/modules/core/m_kick.c @@ -173,6 +173,17 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p return 0; } + if (MyClient(source_p) && chptr->mode.mode & MODE_NOOPERKICK && IsOper(who)) + { + sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, + "Overriding KICK from %s on %s in %s (channel is +M)", + source_p->name, who->name, chptr->chname); + sendto_one_numeric(source_p, ERR_ISCHANSERVICE, + "%s %s :Cannot kick IRC operators from that channel.", + who->name, chptr->chname); + return 0; + } + if(MyClient(source_p)) { hook_data_channel_approval hookdata; @@ -195,7 +206,7 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p if(is_override) sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, "%s is overriding KICK [%s] on [%s] [%s]", - get_oper_name(source_p), who->name, chptr->chname, comment); + get_oper_name(source_p), command, who->name, chptr->chname, comment); /* jdc * - In the case of a server kicking a user (i.e. CLEARCHAN),