Commit Diff


commit - ef328ab3922da984b52f8275c2620983f98b7a19
commit + f7567db01f1a9b1e0f0dbef0ee28438c8ece7892
blob - debd8ce21ae9314375abb667ec4d8540509fd940
blob + 67e72bfb9ef5a12cb1b37a1d1864751607e6f49b
--- src/ngircd/irc-channel.c
+++ src/ngircd/irc-channel.c
@@ -9,7 +9,7 @@
  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
  * der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
  *
- * $Id: irc-channel.c,v 1.7 2002/06/01 14:37:28 alex Exp $
+ * $Id: irc-channel.c,v 1.8 2002/06/02 14:51:14 alex Exp $
  *
  * irc-channel.c: IRC-Channel-Befehle
  */
@@ -62,9 +62,9 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
 	channame = strtok( Req->argv[0], "," );
 	while( channame )
 	{
-		/* wird der Channel neu angelegt? */
-		flags = NULL;
+		chan = flags = NULL;
 
+		/* wird der Channel neu angelegt? */
 		if( Channel_Search( channame )) is_new_chan = FALSE;
 		else is_new_chan = TRUE;
 
@@ -95,6 +95,11 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
 				if( Lists_CheckBanned( target, chan ))
 				{
 					/* Client ist gebanned: */
+					IRC_WriteStrClient( Client, ERR_BANNEDFROMCHAN_MSG, Client_ID( Client ), channame );
+
+					/* naechsten Namen ermitteln */
+					channame = strtok( NULL, "," );
+					continue;
 				}
 
 				/* Ist der Channel "invite-only"? */
@@ -104,6 +109,11 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req )
 					if( ! Lists_CheckInvited( target, chan ))
 					{
 						/* Client wurde nicht invited: */
+						IRC_WriteStrClient( Client, ERR_INVITEONLYCHAN_MSG, Client_ID( Client ), channame );
+
+						/* naechsten Namen ermitteln */
+						channame = strtok( NULL, "," );
+						continue;
 					}
 				}
 			}