]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - extensions/m_okick.c
Enforce TS rules on MLOCKs.
[irc/rqf/shadowircd.git] / extensions / m_okick.c
index 3c532945b93f21f5647a3b8e52c9ba25c8097775..780e1ede0af1a6d28c70f7d2de1d674cb2dd4f7a 100644 (file)
@@ -20,7 +20,6 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: m_okick.c 3554 2007-08-10 22:31:14Z jilles $
  */
 
 #include "stdinc.h"
@@ -38,6 +37,8 @@
 #include "s_conf.h"
 #include "s_serv.h"
 
+struct module_modes ModuleModes;
+
 static int mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char *parv[]);
 
 
@@ -52,7 +53,6 @@ DECLARE_MODULE_AV1(okick, NULL, NULL, okick_clist, NULL, NULL, "$Revision: 3554
 
 /*
 ** m_okick
-**      parv[0] = sender prefix
 **      parv[1] = channel
 **      parv[2] = client to kick
 **      parv[3] = kick comment
@@ -69,6 +69,7 @@ mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char
        char *name;
        char *p = NULL;
        char *user;
+       char text[10];
        static char buf[BUFSIZE];
 
        if(*parv[2] == '\0')
@@ -137,5 +138,11 @@ mo_okick(struct Client *client_p, struct Client *source_p, int parc, const char
        sendto_server(&me, chptr, CAP_TS6, NOCAPS,
                      ":%s KICK %s %s :%s", me.id, chptr->chname, who->id, comment);
        remove_user_from_channel(msptr);
+
+       rb_snprintf(text, sizeof(text), "K%s", who->id);
+
+       /* we don't need to track NOREJOIN stuff unless it's our client being kicked */
+       if(MyClient(who) && chptr->mode.mode & ModuleModes.MODE_NOREJOIN)
+               channel_metadata_time_add(chptr, text, rb_current_time(), "KICKNOREJOIN");
        return 0;
 }