]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/core/m_kick.c
Fix +J not checking for local clients properly.
[irc/rqf/shadowircd.git] / modules / core / m_kick.c
index e807212f673c0390051fb8399dfc3c13ec4c8473..a85b7a7f4a771465b3f86af89a954b2d4bfa4f9b 100644 (file)
@@ -110,7 +110,7 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p
                {
                        if(MyConnect(source_p))
                        {
-                               if(IsOverride(source_p) & !is_any_op(msptr))
+                               if(IsOverride(source_p))
                                        is_override = 1;
                                else
                                {
@@ -228,6 +228,10 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p
                              ":%s KICK %s %s :%s",
                              use_id(source_p), chptr->chname, use_id(who), comment);
                remove_user_from_channel(msptr);
+
+               /* we don't need to track NOREJOIN stuff unless it's our client being kicked */
+               if(MyClient(who) && chptr->mode.mode & MODE_NOREJOIN)
+                       channel_metadata_time_add(chptr, "KICKNOREJOIN", rb_current_time(), who->id);
        }
        else if (MyClient(source_p))
                sendto_one_numeric(source_p, ERR_USERNOTINCHANNEL,