diff options
| author | Alexander Barton <alex@barton.de> | 2004-04-09 20:46:46 +0000 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2004-04-09 20:46:46 +0000 |
| commit | 233210b9063b0c2d49d59cb0f172e119b322e647 (patch) | |
| tree | cd6ba9c0c68d25a52d267554853f12e19aa607fa /src | |
| parent | f68e92eb9a4dcc6a09677dac4d0cc4524c17148b (diff) | |
| download | ngircd-233210b9063b0c2d49d59cb0f172e119b322e647.tar.gz ngircd-233210b9063b0c2d49d59cb0f172e119b322e647.zip | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ngircd/irc-channel.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c index a02f85c7..79be0005 100644 --- a/src/ngircd/irc-channel.c +++ b/src/ngircd/irc-channel.c @@ -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 )) |