]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/hash.c
fix bursting of empty channels, and add chanserv modes to example conf file
[irc/evilnet/x3.git] / src / hash.c
index dd35e066e4a52d9eebfe9b64f24c0831e4f16818..ebf2d9a497e924a99d1065dcfe84d0f1f3812a2e 100644 (file)
@@ -3,7 +3,7 @@
  *
  * This file is part of x3.
  *
- * srvx is free software; you can redistribute it and/or modify
+ * x3 is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
@@ -607,11 +607,21 @@ DelChannelUser(struct userNode* user, struct chanNode* channel, const char *reas
         DelChannel(channel);
 }
 
+static kick_func_t *kf_list;
+static unsigned int kf_size = 0, kf_used = 0;
+
 void
 KickChannelUser(struct userNode* target, struct chanNode* channel, struct userNode *kicker, const char *why)
 {
+    unsigned int n;
+
     if (!target || !channel || IsService(target) || !GetUserMode(channel, target))
         return;
+
+    /* This may break things, but lets see.. -Rubin */
+    for (n=0; n<kf_used; n++)
+        kf_list[n](kicker, target, channel);
+
     /* don't remove them from the channel, since the server will send a PART */
     irc_kick(kicker, target, channel, why);
 
@@ -623,9 +633,6 @@ KickChannelUser(struct userNode* target, struct chanNode* channel, struct userNo
     }
 }
 
-static kick_func_t *kf_list;
-static unsigned int kf_size = 0, kf_used = 0;
-
 void
 reg_kick_func(kick_func_t handler)
 {