X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/625a2b1f99dc8cb84d864720da82d01d09ee38a9..d1c7eccf6af5e957c316a671cfdf5a00ab5043b3:/modules/m_invite.c diff --git a/modules/m_invite.c b/modules/m_invite.c index b8782d0..2a711e4 100644 --- a/modules/m_invite.c +++ b/modules/m_invite.c @@ -145,7 +145,7 @@ m_invite(struct Client *client_p, struct Client *source_p, int parc, const char /* unconditionally require ops, unless the channel is +g */ /* treat remote clients as chanops */ - if(MyClient(source_p) && !is_chanop(msptr) && + if(MyClient(source_p) && !is_any_op(msptr) && !IsOverride(source_p) && !(chptr->mode.mode & MODE_FREEINVITE)) { sendto_one(source_p, form_str(ERR_CHANOPRIVSNEEDED), @@ -153,6 +153,14 @@ m_invite(struct Client *client_p, struct Client *source_p, int parc, const char return 0; } + if (IsSetNoInvite(target_p)) + { + sendto_one_numeric(source_p, ERR_NOINVITE, + form_str(ERR_NOINVITE), + target_p->name); + return 0; + } + /* store invites when they could affect the ability to join * for +l/+j just check if the mode is set, this varies over time */