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.
This commit is contained in:
Alexander Barton 2004-04-09 20:46:46 +00:00
parent f68e92eb9a
commit 233210b906
2 changed files with 15 additions and 3 deletions

View File

@ -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 $

View 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 ))