about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2002-06-02 14:51:14 +0000
committerAlexander Barton <alex@barton.de>2002-06-02 14:51:14 +0000
commitf7567db01f1a9b1e0f0dbef0ee28438c8ece7892 (patch)
tree0bd795608ddf3956a5868c9b79fdcea76f8adcb1 /src
parentef328ab3922da984b52f8275c2620983f98b7a19 (diff)
downloadngircd-f7567db01f1a9b1e0f0dbef0ee28438c8ece7892.tar.gz
ngircd-f7567db01f1a9b1e0f0dbef0ee28438c8ece7892.zip
- JOIN: Invite- und Ban-Lists werden nun beachtet.
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc-channel.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/ngircd/irc-channel.c b/src/ngircd/irc-channel.c
index debd8ce2..67e72bfb 100644
--- a/src/ngircd/irc-channel.c
+++ b/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;
 					}
 				}
 			}