]> arthur.barton.de Git - ngircd-alex.git/commitdiff
Servers other than the destination server didn't clean up the invite
authorAlexander Barton <alex@barton.de>
Fri, 9 Apr 2004 20:46:46 +0000 (20:46 +0000)
committerAlexander Barton <alex@barton.de>
Fri, 9 Apr 2004 20:46:46 +0000 (20:46 +0000)
list of an "invite-only" channel properly when an INVITE'd user joined.

ChangeLog
src/ngircd/irc-channel.c

index 296d15b53d207652512ba5540db9d7c35dcc5510..5afefd6746a1ff858400963ed2409c7d4b2237a6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,8 @@
 
 ngIRCd CVSHEAD
 
+  - Servers other than the destination server didn't clean up the invite
+    list of an "invite-only" channel properly when an INVITE'd user joined.
   - Changed the reply of the MODE command to match the syntax of the
     original ircd exactly: the unnecessary but missing ":" before the last
     parameter has been added.
@@ -508,4 +510,4 @@ ngIRCd 0.0.1, 31.12.2001
 
 
 -- 
-$Id: ChangeLog,v 1.229 2004/02/29 16:28:44 alex Exp $
+$Id: ChangeLog,v 1.230 2004/04/09 20:46:46 alex Exp $
index a02f85c7373d8b0be145e78673b3ff9cce9f5e2a..79be000568b476f1f1c871488f5ffbdba9a443d9 100644 (file)
@@ -14,7 +14,7 @@
 
 #include "portab.h"
 
-static char UNUSED id[] = "$Id: irc-channel.c,v 1.26 2004/03/11 22:16:31 alex Exp $";
+static char UNUSED id[] = "$Id: irc-channel.c,v 1.27 2004/04/09 20:46:48 alex Exp $";
 
 #include "imp.h"
 #include <assert.h>
@@ -86,7 +86,7 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
                        }
                }
 
-               /* Lokaler Client? */
+               /* Local client? */
                if( Client_Type( Client ) == CLIENT_USER )
                {
                        /* Test if the user has reached his maximum channel count */
@@ -159,6 +159,16 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
                                }
                        }
                }
+               else
+               {
+                       /* Remote server: we don't need to know whether the
+                        * client is invited or not, but we have to make sure
+                        * that the "one shot" entries (generated by INVITE
+                        * commands) in this list become deleted when a user
+                        * joins a channel this way. */
+                       chan = Channel_Search( channame );
+                       if( chan != NULL ) (VOID)Lists_CheckInvited( target, chan );
+               }
 
                /* Channel joinen (und ggf. anlegen) */
                if( ! Channel_Join( target, channame ))