Revision: 1893
          
http://undernet-ircu.svn.sourceforge.net/undernet-ircu/?rev=1893&view=rev
Author:   entrope
Date:     2008-11-18 03:18:46 +0000 (Tue, 18 Nov 2008)

Log Message:
-----------
Properly handle net rider kicks that are received after a normal kick for the 
same user.

Modified Paths:
--------------
    ircu2/branches/u2_10_12_branch/ChangeLog
    ircu2/branches/u2_10_12_branch/ircd/m_kick.c

Modified: ircu2/branches/u2_10_12_branch/ChangeLog
===================================================================
--- ircu2/branches/u2_10_12_branch/ChangeLog    2008-11-18 03:16:05 UTC (rev 
1892)
+++ ircu2/branches/u2_10_12_branch/ChangeLog    2008-11-18 03:18:46 UTC (rev 
1893)
@@ -1,5 +1,10 @@
 2008-11-17  Michael Poole <[EMAIL PROTECTED]>
 
+       * ircd/m_kick.c (ms_kick): Properly handle crossing net rider and
+       normal KICKs (in the case where we get the normal kick first).
+
+2008-11-17  Michael Poole <[EMAIL PROTECTED]>
+
        * ircd/match.c (match): Fix an error in backtracking (apparently
        exacerbated by escapes).
 

Modified: ircu2/branches/u2_10_12_branch/ircd/m_kick.c
===================================================================
--- ircu2/branches/u2_10_12_branch/ircd/m_kick.c        2008-11-18 03:16:05 UTC 
(rev 1892)
+++ ircu2/branches/u2_10_12_branch/ircd/m_kick.c        2008-11-18 03:18:46 UTC 
(rev 1893)
@@ -206,8 +206,21 @@
     return 0;
 
   /* We go ahead and pass on the KICK for users not on the channel */
-  if (!(member = find_member_link(chptr, who)) || IsZombie(member))
+  member = find_member_link(chptr, who);
+  if (member && IsZombie(member))
+  {
+    /* We might get a KICK from a zombie's own server because the user
+     * net-rode during a burst (which always generates a KICK) *and*
+     * was kicked via another server.  In that case, we must remove
+     * the user from the channel.
+     */
+    if (sptr == cli_user(who)->server)
+    {
+      remove_user_from_channel(who, chptr);
+    }
+    /* Otherwise, we treat zombies like they are not channel members. */
     member = 0;
+  }
 
   /* Send HACK notice, but not for servers in BURST */
   /* 2002-10-17: Don't send HACK if the users local server is kicking them */


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.
_______________________________________________
Patches mailing list
[email protected]
http://undernet.sbg.org/mailman/listinfo/patches

Reply via email to